简单的上传脚本(允许工作人员更改他们的个人资料图片),可以在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中的图像?
答案 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有关。