jjzjj

php - 多张图片上传在 iphone 和 ipad 中不起作用

coder 2024-04-30 原文

我正在尝试使用上传图片,它在浏览器中完美运行,但在 iphone 和 ipad 中不起作用。下面是 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 截图

正如我们从下面的数组中看到的那样,它显示在 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
        [error] => 0
        [size] => 32961
    )

最佳答案

好的,我找到了解决方案:)

我们在 ipad 和 iphone 中遇到问题,因为它们将所有图像的名称都用作 image.jpg,因此如果我们使用多个图像,这将被覆盖,因此我们需要在复制时向名称添加 rand() 或任何唯一键文件夹。

$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);  

关于php - 多张图片上传在 iphone 和 ipad 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22189552/

有关php - 多张图片上传在 iphone 和 ipad 中不起作用的更多相关文章

  1. ruby - 我可以使用 aws-sdk-ruby 在 AWS S3 上使用事务性文件删除/上传吗? - 2

    我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的

  2. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  3. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  4. ruby-on-rails - Ruby on Rails - 为文本区域和图片生成列 - 2

    我是Rails的新手,所以请原谅简单的问题。我正在为一家公司创建一个网站。那家公司想在网站上展示它的客户。我想让客户自己管理这个。我正在为“客户”生成一个表格,我想要的三列是:公司名称、公司描述和Logo。对于名称,我使用的是name:string但不确定如何在脚本/生成脚手架终端命令中最好地创建描述列(因为我打算将其设置为文本区域)和图片。我怀疑描述(我想成为一个文本区域)应该仍然是描述:字符串,然后以实际形式进行调整。不确定如何处理图片字段。那么……说来话长:我在脚手架命令中输入什么来生成描述和图片列? 最佳答案 对于“文本”数

  5. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  6. ruby-on-rails - 有没有办法为 CarrierWave/Fog 设置上传进度指示器? - 2

    我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r

  7. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  8. ruby-on-rails - "assigns"在 Ruby on Rails 中有什么作用? - 2

    我目前正在尝试学习RubyonRails和测试框架RSpec。assigns在此RSpec测试中做什么?describe"GETindex"doit"assignsallmymodelas@mymodel"domymodel=Factory(:mymodel)get:indexassigns(:mymodels).shouldeq([mymodel])endend 最佳答案 assigns只是检查您在Controller中设置的实例变量的值。这里检查@mymodels。 关于ruby-o

  9. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  10. ruby - 字符串文字前面的 * 在 ruby​​ 中有什么作用? - 2

    这段代码似乎创建了一个范围从a到z的数组,但我不明白*的作用。有人可以解释一下吗?[*"a".."z"] 最佳答案 它叫做splatoperator.SplattinganLvalueAmaximumofonelvaluemaybesplattedinwhichcaseitisassignedanArrayconsistingoftheremainingrvaluesthatlackcorrespondinglvalues.Iftherightmostlvalueissplattedthenitconsumesallrvaluesw

随机推荐