为何用Delphi程序写的POST不能上传图片?
我用Delphi写了个POST,想实现自动上传的功能,但是就算我把整个提封包完全模拟下来,也不能成功提交图片,求高手帮忙解答!
以下是PHP的代码
- PHP code
<!---ecms Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <?php //上传文件类型列表 $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png' ); $max_file_size=2000000; //上传文件大小限制, 单位BYTE $destination_folder="uploadimg/"; //上传文件路径 $imgpreview=0; //是否生成预览图(1为生成,其他为不生成); $imgpreviewsize=1/1; //缩略图比例 ?> <title>FileUpload</title> <style type="text/css"> <!---ecms body { font-size: 9pt; } input { background-color: #66CCFF; border: 1px inset #CCCCCC; } --> </style> <body> 上传文件: <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!is_uploaded_file($_FILES["upfile"][tmp_name])) //是否存在文件 { echo "图片不存在!"; exit; } $file = $_FILES["upfile"]; if($max_file_size < $file["size"]) //检查文件大小 { echo "文件太大!"; exit; } if(!in_array($file["type"], $uptypes)) //检查文件类型 { echo "文件类型不符!".$file["t<em>¥本文来%源[email protected]搞@^&代*@码)网5</em><strong>搞gaodaima代码</strong>ype"]; exit; } if(!file_exists($destination_folder)) { mkdir($destination_folder); } $filename=$file["tmp_name"]; $image_size = getimagesize($filename); $pinfo=pathinfo($file["name"]); $ftype=$pinfo['extension']; $destination = $destination_folder.time().".".$ftype; if (file_exists($destination) && $overwrite != true) { echo "同名文件已经存在了"; exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移动文件出错"; exit; } $pinfo=pathinfo($destination); $fname=$pinfo[basename]; echo " <font color="red">已经成功上传</font><br>"; if($imgpreview==1) { echo "<br>图片预览:<br>"; echo "";%20%20%20%20%20%20}%20%20}%20%20?>%20%20%20<br>%20%20%20%20%20
以下是正常网页提交,和Delphi写的程序POST提交的截包
- XML%20code
POST%20/aa.php%20HTTP/1.1Accept:%20image/gif,%20image/x-xbitmap,%20image/jpeg,%20image/pjpeg,%20application/x-shockwave-flash,%20application/vnd.ms-excel,%20application/vnd.ms-powerpoint,%20application/msword,%20application/x-silverlight,%20*/*Referer:%20http://116.254.216.83/aa.phpAccept-Language:%20zh-cnContent-Type:%20multipart/form-data;%20boundary=---------------------------7dc38a1d60e20Accept-Encoding:%20gzip,%20deflateUser-Agent:%20Mozilla/4.0%20(compatible;%20MSIE%206.0;%20Windows%20NT%205.1;%20SV1)Host:%20116.254.216.83Content-Length:%2037420Connection:%20Keep-AliveCache-Control:%20no-cache-----------------------------7dc38a1d60e20Content-Disposition:%20form-data;%20name="upfile";%20filename="C:\Documents%20and%20Settings\Administrator\妗岄潰\Test\789_3.jpg"Content-Type: image/pjpeg??==================以上是网页提交截取的封包==========================================以下是Delphi程序提交截取的封包========================POST /aa.php HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */*Referer: http://116.254.216.83/aa.phpAccept-Language: zh-cnContent-Type: multipart/form-data; boundary=---------------------------7dcbbd440b68Accept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)Host: 116.254.216.83Connection: Keep-AliveContent-Length: 37630Cache-Control: no-cache---------------------------7dcbbd440b68Content-Disposition: form-data; name="upfile"; filename="D:\Test\789_5.jpg"Content-Type: image/pjpeg??