検索

InterSystems公式
· 2024年8月19日

L'aperçu pour les développeurs d'InterSystems IRIS et IRIS for Health 2024.3 est désormais disponible

Le premier aperçu pour les développeurs d'InterSystems IRIS 2024.3 et d'InterSystems IRIS for Health 2024.3 a été publié sur le site d'aperçu pour les développeurs de WRC. Les conteneurs sont disponibles sur notre registre de conteneurs et sont étiquetés latest-preview.

Il s'agit d'une version très précoce du cycle de publication et aucune fonctionnalité digne d'être « mise en avant » n'est terminée. Elles commenceront à arriver dans les prochaines versions d'aperçu.

La documentation initiale est disponible sur les liens ci-dessous.

Disponibilité et informations sur les packages

Cette version est fournie avec des packages d'installation classiques pour toutes les plateformes prises en charge. Pour obtenir une liste complète, reportez-vous au document Plateformes prises en charge.

Les packages d'installation et les clés d'aperçu sont disponibles sur le site de téléchargement d'aperçus de WRC ou sur le site Web des services d'évaluation (cochez la case « Show Preview Software »).

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください
ダイジェスト
· 2024年8月19日

Nuevas publicaciones en la Comunidad de InterSystems, 12-18 agosto

質問
· 2024年8月19日

ensemble中如何调用服务上传excel文件,请求头类型multipart/form-data;出现一堆调试乱码,是文件类型设置的问题还是哪里的问题?

1.我在java中发布了一个服务提供给调用,postman中可以请求解析出数据

请求信息如下:

POST /uploadPersonExcel HTTP/1.1
Host: localhost:8017
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
cache-control: no-cache
Postman-Token: 1c23edfe-1e83-44c6-8f91-e06bccfd4af3

Content-Disposition: form-data; name="file"; filename="C:\Users\elite\Desktop\personinfo.xlsx

------WebKitFormBoundary7MA4YWxkTrZu0gW--

 

2.Ensemble中请求代码如下:

ClassMethod PostFile()
{
	    Set excelpath = "C:\Users\elite\Desktop\personinfo.xlsx"
	    s filename="personinfo.xlsx"
	    s fullPathName=excelpath
        Set HttpRequest = ##class(%Net.HttpRequest).%New() 
        set HttpRequest.Server="127.0.0.1"
	    set HttpRequest.Port="8017"
	    //set HttpRequest.AcceptGzip=0
        //d HttpRequest.SetHeader("Accept", "'*/*'")
        //d HttpRequest.SetHeader("Access-Control-Allow-Origin","*")
        s stream=##class(%Stream.FileBinary).%New()
		s sc=stream.LinkToFile(excelpath) 
		//多个文件    
		s RootMIMEPart = ##class(%Net.MIMEPart).%New()
		//单个文件
		s BinaryMIMEPart = ##class(%Net.MIMEPart).%New()
		s BinaryMIMEPart.Body = stream
		;d BinaryMIMEPart.SetHeader("Content-Type", "application/octet-stream")
		d BinaryMIMEPart.SetHeader("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
		d BinaryMIMEPart.SetHeader("Content-Disposition","form-data; name="_$CHAR(34)_"file"_$CHAR(34)_"; filename="_$CHAR(34)_filename_$CHAR(34)_"")
		S status = RootMIMEPart.Parts.Insert(BinaryMIMEPart)
		s writer = ##class(%Net.MIMEWriter).%New()
		d writer.OutputToStream(HttpRequest.EntityBody)
		d writer.WriteMIMEBody(RootMIMEPart)
		d HttpRequest.SetHeader("Content-Type", "multipart/form-data; boundary="_RootMIMEPart.Boundary)
		d HttpRequest.SetHeader("Content-Disposition","form-data; name="_$CHAR(34)_"file"_$CHAR(34)_"; filename="_$CHAR(34)_excelpath_$CHAR(34)_"")    
		d HttpRequest.InsertFormData("file", BinaryMIMEPart)
		s tSCx = HttpRequest.Post("/uploadPersonExcel",1, 1)   
        w:tSCx'=1 $System.Status.GetErrorText(tSCx)
		If '$IsObject( HttpRequest.HttpResponse) {
		      s err = "Response Error"
		      //$$$TRACE(err)
		} 
		Set Myresponse = HttpRequest.HttpResponse
		If $IsObject(Myresponse) {
		set data1 = ""
		set stream1 = Myresponse.Data
		While 'stream1.AtEnd { 
			set data1 = data1 _ stream1.ReadLine(,.sc,.eol)
			If $$$ISERR(sc) { 
			   set data1 = data1 _ "ERROR" Quit
			} 
		}
		w "返回结果:"_data1,!
		}
}

测试模式下的消息如下:

不知道问题出在哪里?

2 Comments
ディスカッション (2)2
続けるにはログインするか新規登録を行ってください
ダイジェスト
· 2024年8月19日
ダイジェスト
· 2024年8月19日