【问题标题】:HTML Upload on iPhone (iOS): filename is always same (image.jpg, image.png, ...)iPhone (iOS) 上的 HTML 上传:文件名始终相同 (image.jpg, image.png, ...)
【发布时间】:2014-01-15 10:32:59
【问题描述】:

我正在使用非常简单的代码在我的响应式网站中上传文件。但是当我使用iPhone 上传图片时,无论实际图片名称如何,图片名称始终为image.jpg

有解决这个问题的办法吗?

我用小代码创建了这个示例页面,用于调试目的:

<?php

    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        print "<pre>";
        echo 'post object info:';
        print_r($_FILES);
        print "</pre>";
    }

?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>File Upload Test for iphone</title>
</head>
<body>
    <form enctype="multipart/form-data" method="POST">
        <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
        <input name="userfile" type="file" /> <br />
        <input type="submit" value="Send File" />
    </form>
</body>
</html>

演示:http://codepad.viper-7.com/VnTfb3/55dev?

【问题讨论】:

  • 出于某种安全原因,这可能是 Apple 的限制。您可以使用 javascript FILE API 并尝试检索您要上传的图像名称。试试看这个帖子stackoverflow.com/questions/15876584/…
  • 我注意到这个问题在 iOS10 Safari 中得到了修复,很好。

标签: html ios iphone post file-upload


【解决方案1】:

我遇到了同样的问题,但我在上传脚本中使用了 3 张图片。对我来说最快、最简单的解决方案是以任何格式添加当前日期和时间(epoch 可能是最好的),以及在文件名中添加一个字母或字母组合来区分文件名。

$date = date('U');

$filename1 = str_replace(' ', '%20', $_FILES['image1']['name']);

$target1 = 'images/';

$file1 = $_FILES['image1'];

$target1 .= $date.'A'.$file1['name'];

$fileName1 = $date.'A'.$file1['name'];

以上是我在脚本中使用的一些代码,但我的脚本显然与您的不同。我只是粘贴它来展示如何在处理和上传文件时修改文件的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2011-08-12
    • 2017-09-29
    • 2022-09-29
    • 2010-12-07
    • 2015-07-31
    • 1970-01-01
    相关资源
    最近更新 更多