@@ -251,29 +251,37 @@ function Qiniu_Build_MultipartForm($fields, $files) // => ($contentType, $body)
251
251
$ data = array ();
252
252
$ mimeBoundary = md5 (microtime ());
253
253
254
- foreach ($ fields as $ name => $ val ){
254
+ foreach ($ fields as $ name => $ val ) {
255
255
array_push ($ data , '-- ' . $ mimeBoundary );
256
- array_push ($ data , "Content-Disposition: form-data; name= $ name " );
256
+ array_push ($ data , "Content-Disposition: form-data; name= \" $ name\" " );
257
257
array_push ($ data , '' );
258
258
array_push ($ data , $ val );
259
259
}
260
260
261
261
foreach ($ files as $ file ) {
262
262
array_push ($ data , '-- ' . $ mimeBoundary );
263
- list ($ name , $ fileName , $ fileCxt ) = $ file ;
264
- array_push ($ data , "Content-Disposition: form-data; name= $ name; filename= $ fileName " );
263
+ list ($ name , $ fileName , $ fileBody ) = $ file ;
264
+ $ fileName = Qiniu_escapeQuotes ($ fileName );
265
+ array_push ($ data , "Content-Disposition: form-data; name= \"$ name \"; filename= \"$ fileName \"" );
265
266
array_push ($ data , 'Content-Type: application/octet-stream ' );
266
267
array_push ($ data , '' );
267
- array_push ($ data , $ fileCxt );
268
+ array_push ($ data , $ fileBody );
268
269
}
269
270
270
- array_push ($ data , '-- ' . $ mimeBoundary );
271
+ array_push ($ data , '-- ' . $ mimeBoundary . ' -- ' );
271
272
array_push ($ data , '' );
272
273
273
274
$ body = implode ("\r\n" , $ data );
274
275
$ contentType = 'multipart/form-data; boundary= ' . $ mimeBoundary ;
275
276
return array ($ contentType , $ body );
276
277
}
277
278
279
+ function Qiniu_escapeQuotes ($ str )
280
+ {
281
+ $ find = array ("\\" , "\"" );
282
+ $ replace = array ("\\\\" , "\\\"" );
283
+ return str_replace ($ find , $ replace , $ str );
284
+ }
285
+
278
286
// --------------------------------------------------------------------------------
279
287
0 commit comments