多个图像上传不工作在iPhone和iPad [英] multiple image upload is not working in iphone and ipad
问题描述
我试图使用上传图片,它在浏览器中工作完美,但它不适用于iphone和ipad。下面是iphone的代码和屏幕截图
test.php
---------
<?php
if(isset($ _ POST ['submit']))
{
// echo< pre>;
// print_r($ _ FILES);
//退出;
copy($ _ FILES [image1] [tmp_name],upload /\".$_ FILES [image1] [name]);
copy($ _ FILES [image2] [tmp_name],upload /\".$_ FILES [image2] [name]);
copy($ _ FILES [image3] [tmp_name],upload /\".$_ FILES [image3] [name]);
回声存储在:。 上传/。 $ _FILES [ 图像1] [ 名称];
echo< br>;
回声存储在:。 上传/。 $ _FILES [ 图像2] [ 名称];
echo< br>;
回声存储在:。 上传/。 $ _FILES [ 图像3] [ 名称];
}
?>
<!doctype html>
< html lang =en>
< head>
< meta charset =utf-8>
< title> demo< / title>
< / head>
< body>
< form method =postenctype =multipart / form-data>
image 1:< input type =filename =image1>< br />
image 2:< input type =filename =image2>< br />
image 3:< input type =filename =image3>< br />
< input type =submitname =submitvalue =Submit>
< / form>
< / body>
< / html>
iphone截图
我们可以看到从下面的阵列这是显示在iPhone / iPad的图像名称是相同的,当我尝试检查上传文件夹,它只显示最后一个图像即第三个图像。
[image1] => Array
(
[name] => image.jpg
[type] => image / jpeg
[tmp_name] => / tmp / phpewhdwx
[error] => 0
[size] => 44009
)
[image2] => Array
(
[name] => image.jpg
[type] => image / jpeg
[tmp_name] => / tmp / phpwYDYBM
[error] => 0
[size] => 27762
)
[image3] => Array
(
[name] => image.jpg
[type] => image / jpeg
[tmp_name] => / tmp / php0vqnB2
[错误] => 0
[size] => 32961
)
我们在ipad和iphone的问题,因为他们使用名称的所有图像作为image.jpg所以如果我们使用多个图像,这将被覆盖,所以我们需要在复制到文件夹时添加rand()或任何唯一的键到名称。
$ image1 = rand()。$ _ FILES [image1] [name];
$ image2 = rand()。$ _ FILES [image2] [name];
$ image3 = rand()。$ _ FILES [image3] [name];
$ b copy($ _ FILES [image1] [tmp_name],upload /\".$ image1);
copy($ _ FILES [image2] [tmp_name],upload /\".$ image2);
copy($ _ FILES [image3] [tmp_name],upload /\".$ image3);
I am trying to use upload images it works perfect in browser but it doesn't work in iphone and ipad .below are code and screenshots for iphone
test.php
---------
<?php
if(isset($_POST['submit']))
{
//echo "<pre>";
//print_r($_FILES);
//exit;
copy($_FILES["image1"]["tmp_name"],"upload/".$_FILES["image1"]["name"]);
copy($_FILES["image2"]["tmp_name"],"upload/".$_FILES["image2"]["name"]);
copy($_FILES["image3"]["tmp_name"],"upload/".$_FILES["image3"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["image1"]["name"];
echo "<br>";
echo "Stored in: " . "upload/" . $_FILES["image2"]["name"];
echo "<br>";
echo "Stored in: " . "upload/" . $_FILES["image3"]["name"];
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
image 1 : <input type="file" name="image1" ><br/>
image 2 : <input type="file" name="image2" ><br/>
image 3 : <input type="file" name="image3" ><br/>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
iphone screenshot
As we can see from this below array this is displayed in iphone/ipad the image names are same for all and when i try to check for upload folder it displayed only the last image i.e third image .
[image1] => Array
(
[name] => image.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpewhdwx
[error] => 0
[size] => 44009
)
[image2] => Array
(
[name] => image.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpwYDYBM
[error] => 0
[size] => 27762
)
[image3] => Array
(
[name] => image.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php0vqnB2
[error] => 0
[size] => 32961
)
Ok i have found the solution :)
we have issue in ipad's and iphone's as they use name for all images as image.jpg so if we use multiple image this gets overridden so we need to add rand() or any unique key to the name at time of copy to folder.
$image1 = rand().$_FILES["image1"]["name"];
$image2 = rand().$_FILES["image2"]["name"];
$image3 = rand().$_FILES["image3"]["name"];
copy($_FILES["image1"]["tmp_name"],"upload/".$image1);
copy($_FILES["image2"]["tmp_name"],"upload/".$image2);
copy($_FILES["image3"]["tmp_name"],"upload/".$image3);
这篇关于多个图像上传不工作在iPhone和iPad的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!