Le type de données d'un fichier est utilisé pour publier des données binaires dans divers appels API. Chaque appel API qui contient au moins un argument de fichier de type doit répondre aux exigences suivantes :
-
La méthode HTTP POST doit être utilisée.
-
La demande de données multipart/formulaire décrite dans les spécifications HTML doit être formée.
Exemples
Java HttpClient
HttpClient httpclient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(webServerUrl); MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, null, Charset.forName("UTF-8")); Partie tâche StringBody ; Format StringBodyPart ; StringBody saveToTransMemoryPart; StringBody setCompletedPart; ByteArrayBody fileContentPart; // ... remplir les variables avec des données ... // reqEntity.addPart("task", taskPart); reqEntity.addPart("format", formatPart); reqEntity.addPart("saveToTransMemory", saveToTransMemoryPart); reqEntity.addPart("setCompleted", setCompletedPart); reqEntity.addPart("bilingualFile", fileContentPart); httpPost.setEntity(reqEntity);
C++ Qt
QHttpMultiPart* multiPartData = new QHttpMultiPart( QHttpMultiPart::FormDataType ); Tampon QBuffer* = nouveau tampon QBuffer( multiPartData ); buffer->open( QIODevice::WriteOnly ); // ... remplir le tampon avec des données ... // writer.writeTo( buffer ); buffer->close(); QHttpPart filePart; filePart.setHeader( QNetworkRequest::ContentTypeHeader, QVariant( "application/octet-stream" ) ); filePart.setHeader( QNetworkRequest::ContentDispositionHeader, QVariant( QString( "form-data; name=\"bilingualFile\"; filename=\"" ) + model->getFileInfos()[0].original + "\"" ) ; buffer->open( QIODevice::ReadOnly ); filePart.setBodyDevice( buffer ); multiPartData->append( filePart );