从移动设备上传图片文件

时间:2017-03-07 20:35:55

标签: php ios iphone

简单的上传脚本(允许工作人员更改他们的个人资料图片),可以在PC上正常工作,但是当我尝试从iPhone上传照片时,页面就会停止,就像它试图加载一样什么也没发生。

这是我的整个测试PHP文件:

<?php
if (isset($_POST['submitNewImage'])) {
    echo 'it works, and the filename is ' . $_FILES['uploadedFile']['name'];    
}
?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<br /><br /><br />
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="file" accept="image/*" capture name="uploadedFile" /><br /><br /><br />
<input type="submit" name="submitNewImage" value="Upload" />
</form>
</body>
</html>

同样,这可以在PC上正常工作,但是当我触摸&#34;上传&#34;来自iPhone,它只是挂起。如果我删除name =&#34; uploadedFile&#34;,页面会执行,但当然没有文件。如何识别iPhone中的图像?

3 个答案:

答案 0 :(得分:1)

您是否有机会在上传包含GD之后对图片做任何事情?

如果您这样做 - 尝试上传纵向或横向图像时有区别吗?如果肖像工作正常,但横向导致挂起(或其他方式,不记得),EXIF数据中的问题可能表明图像已旋转但GD无法正确处理。

解决方案在于获取EXIF数据(使用exif_read_data()),然后使用imagemagick(调用中的-strip param)将其剥离,然后使用GD或图像magick旋转图像,这将为您留下可以无需操作的图像产生错误。

答案 1 :(得分:0)

它对我有用,值得一试!

<?php

    if(isset($_POST['submit_image'])) {

    $new_image = $_FILES['new_image']['name'];
    $new_image_temp = $_FILES['new_image']['tmp_name'];

    move_uploaded_file($new_image_temp, "../img/$new_image");    

    }

?>

<form action="" method="post" enctype="multipart/form-data">

    <label for="new_image">Image: </label>
    <input type="file" name="new_image">
    <input type="submit" name="submit_image" value="Submit">

</form>

答案 2 :(得分:0)

嗯,这不是代码,这是网站服务器的问题。我在Windows 2008 R2,IIS 7,PHP 5.6上有这个。但是,当我在Windows服务器,2008 R2,XAMPP,PHP 5.6.15上放置相同的代码时,它工作正常。谢谢大家的帮助,它让我朝着正确的方向前进。当我找出原因时,我会发布最终结果,我怀疑它与IIS 7有关。