多个图像上传不工作在iPhone和iPad [英] multiple image upload is not working in iphone and ipad

查看:184
本文介绍了多个图像上传不工作在iPhone和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屋!

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