@@ -251,29 +251,37 @@ function Qiniu_Build_MultipartForm($fields, $files) // => ($contentType, $body)
251251 $ data = array ();
252252 $ mimeBoundary = md5 (microtime ());
253253
254- foreach ($ fields as $ name => $ val ){
254+ foreach ($ fields as $ name => $ val ) {
255255 array_push ($ data , '-- ' . $ mimeBoundary );
256- array_push ($ data , "Content-Disposition: form-data; name= $ name " );
256+ array_push ($ data , "Content-Disposition: form-data; name= \" $ name\" " );
257257 array_push ($ data , '' );
258258 array_push ($ data , $ val );
259259 }
260260
261261 foreach ($ files as $ file ) {
262262 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 \"" );
265266 array_push ($ data , 'Content-Type: application/octet-stream ' );
266267 array_push ($ data , '' );
267- array_push ($ data , $ fileCxt );
268+ array_push ($ data , $ fileBody );
268269 }
269270
270- array_push ($ data , '-- ' . $ mimeBoundary );
271+ array_push ($ data , '-- ' . $ mimeBoundary . ' -- ' );
271272 array_push ($ data , '' );
272273
273274 $ body = implode ("\r\n" , $ data );
274275 $ contentType = 'multipart/form-data; boundary= ' . $ mimeBoundary ;
275276 return array ($ contentType , $ body );
276277}
277278
279+ function Qiniu_escapeQuotes ($ str )
280+ {
281+ $ find = array ("\\" , "\"" );
282+ $ replace = array ("\\\\" , "\\\"" );
283+ return str_replace ($ find , $ replace , $ str );
284+ }
285+
278286// --------------------------------------------------------------------------------
279287
0 commit comments