PHP图片上传于中失败。半图像上传 [英] PHP Image upload failed in middle. Half image uploaded

查看:1226
本文介绍了PHP图片上传于中失败。半图像上传的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何检测的图像已经被完全或部分上传?我遇到的其中只有一半的图像已被上传一个奇怪的现象。下面的图片是由用户通过Android应用程序通过Web服务上传:

管理门户和Web服务使用Yii框架编写的。什么可能导致被这样创建的图像? Android开发者发送基带64 codeD字符串,我去code将其方式如下:

  $ profilePicture = $数据['profilePicture'];
    标题(内容类型:图像/ PNG');
    $ RND = sprintf的(%04D,兰特(0,9999));
    $文件名= $ RND。 _。时间() 。 巴纽; //随机数+时间戳    $ uploadPath =用户:: getProfilePicturePath()。 $ ID;    如果(!file_exists($ uploadPath)和!is_dir($ uploadPath))//创建只有当它不存在的目录。
        的mkdir($ uploadPath);    如果(!的file_put_contents($ uploadPath。DIRECTORY_SEPARATOR。$文件名,base64_de code($ profilePicture)))

我怀疑这是原因,因为Android开发者发送的基带64 code之前文件是完全上传。或者是别的什么?

$ profilePicture等于64的基本字符串这样,

<$p$p><$c$c>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

Android的一侧code是如下,

 字符串和imagestring = Base64.en codeBytes(byteImage);

这是所使用的类文件。

http://www.mirthcorp.com/community/问题/安全/附件/ 10313 / Base64.java


解决方案

可以使用 imagecreatefrompng 函数检查提供的图像损坏或没有。

  $ SRC1 ='F:\\测试\\ 0374_1423730003.png';
$ SRC2 ='F:\\测试\\ 5030_1423722865.png'; //破$ IM = @imagecreatefrompng($ SRC1);
如果($ IM)
    回声创建IMG';
其他
    回声没有创建,破碎的形象;

How can I detect if an image has been uploaded completely or partially? I encountered a strange situation where only half an image has been uploaded. The following image was uploaded by a user through an Android application via a Web service:

The admin portal and Web service is written using the Yii framework. What might have caused an image to be created like this? Android Developer sends the base-64 encoded string and I decode it the following way:

$profilePicture = $data['profilePicture'];
    header('Content-Type: image/png');
    $rnd = sprintf('%04d', rand(0, 9999));
    $fileName = $rnd . '_' . time() . '.png'; // random number + timestamp

    $uploadPath = User::getProfilePicturePath() . $id;

    if (!file_exists($uploadPath) and ! is_dir($uploadPath)) //create a directory only if it does not exist.
        mkdir($uploadPath);

    if (!file_put_contents($uploadPath . DIRECTORY_SEPARATOR . $fileName, base64_decode($profilePicture)))

I doubt this is the cause, because Android Developer is sending the base-64 encode before file is completely uploaded. Or is it something else?

$profilePicture is equal to 64 base string like this,

iVBORw0KGgoAAAANSUhEUgAAAS0AAAEsCAIAAAAZ3XIcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABSSSURBVHhe7dzLjixYWp7hFAOPPPDM9+FLsGxsbGTESYBADH2mD3RXd1UfweC78z3hqtAjhbResUVZtTtiyd+jb5CpNwehvfJX7yoVfPzgP39vu3o//C/f327fx4/+6w+2bXvtdofb9vrtDrft9dsdXr8f/7cfbrdvd3j9jhfdbtzu8PodL7rduI/j++26ffHf/3q7fbvD63e86HbjdofX73jR7cZ9HN9v1+0n/+NH2+3bv6e5fseLbjfu4/h+27bf/Pb30ut3vOh243aH1+940e3G7Q6v3/Gi243bHV6/40W3G7d/T7Ntr9/ucNtev93htr1+u8Ptc+2n//PH2z9xu8Ptc+34Vds+sd3h9rl2/Kptn9jH8f22fVf76ns/ebf97Ps/fc99fPlXX2zb59hxA9sn9nF8v23f1Y6z3D6xN/176fEp32TH79mb7Pgbznbj3vTvpcev2pvs+LPbtu9q+3vpt9jxZ7dt39U+ju/fZMcBvMmOD/km+/kPvtxu35v+7+Hxq/YmOz7km+x40e3Gven/Hm7/9B0vut243eH1O150u3G7w+t3vOh243aH1+940e3G7Q6v3/Gi243bHV6/40W3G/dxfL9dt1/88Kvt9u0Or9/xotuN2x1ev+NFtxv3cXy/bdtvfrvDbXv9dofb9vp9/PKvf7ZdveNF32fH59w+sd3h9Tt++99nx+fcPrHd4fU7fvvfZ8fn3D6x3eH1O37732fH59w+sf17mm+x48/uTXZ8yO3G7Q6/xY4D2LbvarvDb7Hjz+5N9qsf/Xy7fR+/+tFX29X79Y9/tt2+3eH1O150u3G7w+t3vOh24z6O77dt+81vd7htr9/ucNtev4+/+eLn27a9drvDbXv9dofb9vrtDq/f3/7kF9vt2x1ev+NFtxu3O7x+x4tuN+7j+H67bv/rp7/cbt/u8PodL7rduN3h9TtedLtxH8f323U7zvJ9dnzOd9jxCd9nu8Prd7zo++z4nO+w4xO+z3aH1+940ffZ8TnfYccnfJ/tDrft9dsdbtvrtzvcttdvd3j9/u7LX223b3d4/Y4X3W7c7vD6HS+63bj99zTfYscBvMmOF91u3O7wW+w4gDfZ8aLbjdsdfosdB/AmO150u3Efx/fbtv3mtzvcttdvd7htr9/ucNtev93htr1+u8Nte/12h9v2+u0Or9/ff/Xr7fbtDq/f8aLbjdsdXr/jRbcbtzu8fseLbjdud3j9jhfdbtzu8PodL7rduN3h9TtedLtxu8Prd7zoduN2h9fveNHtxu0Or9/xotuN2x1ev+NFtxu3O7x+x4tuN27/fxOv33GW243bHV6/40W3G7c7vH7Hi243bnd4/Y4X3W7c7vD6HS+63bjd4ba9frvDbXv9dofb9vrtDq/f8U8a243bHV6/40W3G7c7vH7Hi243bnd4/Y4X3W7c7vD6HS+63bjd4fU7XnS7cbvD63e86HbjdofX73jR7cbtDq/f8aLbjdsdXr/jRbcbtzu8fseLbjdud3j9jhfdbtzu8PodL7rduDe9w7/9yS/ecMeHfJMdL7rduN3ht9jxId9kx4tuN253+C12fMg32fGi243bPx9u2+u3O9y21293uG2v38fffPHVdvX+7stfbLfv429/8rPt6h0vut24r/9e+vPt6h0vut24j+P77br9/Ve/3G7f7vD6HS+63bjd4fU7XnS7cR//+8tfb9v22u0Ot+312x1u2+v38fc//dV29Y4X3W7c7vD6HS+63bjd4fU7XnS7cR/H/4nddt2O/2J4u3G7w217/XaH2/b67Q637fXbHV6/v/ni59vt2x1ev+NFtxu3O7x+x4tuN253uG2v3+5w216/3eG2vX67w217/XaH2/b67Q637fX7OP796bZ9Vzt+1bZPbHe4fa4dv2rbJ7Y73D7Xjl+17RPbHV6/X//4Z++543O+w45P+D7bHV6/40XfZ8fnfIcdn/B9tju8fseLvs+Oz/kOOz7h+2x3uH2uHf8ItH1iu8Ptc+34Vds+sd3h9rl2/Kptn9jH8ffU7bodv/3bjdsdXr/jRbcbtzu8fseLbjdud3j9jhfdbtzu8PodL7rduN3h9TtedLtxu8Pr96sfffWeOz7n9ontDq/f8dv/Pjs+5/aJ7Q6v3/Hb/z47Puf2iX0cf3bbdTtedLtxu8Prd7zoduM+fvnXX25X7zjL7cbtDq/f8aLbjdsdXr/jRbcbtzvcPteOX7XtE9sdbp9rx6/a9ontDrfPteNXbfvEdofb59rxq7Z9YrvDbXv9dofb9vrtDrft9fv4xQ9/ul2940W3G7c7vH7Hi243bnd4/Y4X3W7c7vD6HS+63bjd4fU7XnS7cbvD63e86HbjPn7+g59sV+84y+3G7Q6v3/Gi243bHV6/40W3G7c7vH7Hi243bnd4/Y4X3W7c7vD6HS+63bjd4fU7XnS7cbvD63e86HbjdofX73jR7cbtDrft9dsdbtvrtzvcttdvd7htr9/ucNtev93htr1+u8Pr97Pvf/GeOz7nO+z4hO+z3eH1O170fXZ8znfY8QnfZ7vD63e86Pvs+JzvsOMTvs8+ju+3bfvNb3e4ba/f7nDbXr/d4ba9frvDbXv9dofb9vrtDrft9fv46ns/fsN9+Vc/esMdH3LbvqvtDr/Fjg+5bd/VdoffYseH3Lbvam96h9v2/9V2h9v2+u0Ot+312x1un2vHP12/w45P+D7bHW6fa8cNvMOOT/g+2x1un2vHDbzDjk/4Ptt/T7Ntr9/ucNtev4+v/Z9/xD/8I+SQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMO+WF3+CSHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHPLD7vBJDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkh2/u0Jfhx0MOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkB92h09yyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCE/7A6f5JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDftgdPskhhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghh/ywO3ySQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw75YXf4JIcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcc8sPu8EkOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSH3eGTHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLID9/coS/Dj4cccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIT/sDp/kkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEN+2B0+ySGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGH/LA7fJJDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDvlhd/gkhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxzyw+7wSQ455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455Ifd4ZMccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsgPu8MnOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQH765Q1+GHw855JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQ37YHT7JIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYf8sDt8kkMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMO+WF3+CSHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHPLD7vBJDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkh93hkxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyA+7wyc55JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JAfdodPcsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghP3xzh74MPx5yyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghh/ywO3ySQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw75YXf4JIcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcc8sPu8EkOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSH3eGTHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLID7vDJznkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkB92h09yyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCE/7A6f5JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDfvjmDn0ZfjzkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDvlhd/gkhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxzyw+7wSQ455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455Ifd4ZMccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsgPu8MnOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQH3aHT3LIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIT/sDp/kkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEN+2B0+ySGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGH/PDNHfoy/HjIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHPLD7vBJDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkh93hkxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyA+7wyc55JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JAfdodPcsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghP+wOn+SQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQ37YHT7JIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYf8sDt8kkMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMO+eGbO/Rl+PGQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSH3eGTHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLID7vDJznkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkB92h09yyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCE/7A6f5JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDftgdPskhhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghh/ywO3ySQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw75YXf4JIcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcc8sM3d+jL8OMhhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsgPu8MnOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQH3aHT3LIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIT/sDp/kkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEN+2B0+ySGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGH/LA7fJJDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDvlhd/gkhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxzyw+7wSQ455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455Idv7tCX4cdDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JAfdodPcsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghP+wOn+SQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQ37YHT7JIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYf8sDt8kkMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMO+WF3+CSHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHPLD7vBJDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDDjnkh93hkxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyA/f3KEvw4+HHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghhxxyyCE/7A6f5JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw455JBDftgdPskhhxxyyCGHHHLIIYcccsghhxxyyCGHHHLIIYcccsghh/ywO3ySQw455JBDDjnkkEMOOeSQQw455JBDDjnkkEMOOeSQQw754Zs7nNf6/d//N9v/w373t//VP/+t3/r6D/Cf/Yt/+Tu/96+P+gb7t1/vD/7g6/321/vDP/ztP/qjf/fHf/zvv96f/Mnv/Omf/oc/+7P/+Od//rt/8Rf/6S//8vf+L9sMtyhbKNyaAAAAAElFTkSuQmCC

Android side code is as below,

String imageString = Base64.encodeBytes(byteImage);

This is the class file used.

http://www.mirthcorp.com/community/issues/secure/attachment/10313/Base64.java

解决方案

Can use imagecreatefrompng function to check if provided image is broken or not.

$src1 = 'F:\Test\0374_1423730003.png';
$src2 = 'F:\Test\5030_1423722865.png'; // broken

$im = @imagecreatefrompng($src1);
if ($im)
    echo 'created img';
else
    echo 'not created, broken image';

这篇关于PHP图片上传于中失败。半图像上传的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆