【问题标题】:File upload error in ios devices when uploading pdfios设备上传pdf时文件上传错误
【发布时间】:2019-09-06 07:07:08
【问题描述】:

我有一个带有文件上传字段的表单。它工作正常,但有时我无法打开提交的.pdf 文件。 我抛弃了$_FILES['file'] 我有这样的事情:

'name' => 'takhtak.pdf',
'type' => 'application/pdf',
'tmp_name' => '/tmp/php5NWFIj',
'error' => 0,
'size' => 0,

我用相同的设备提交了相同的.pdf 文件,但只有 50 个文件中的 1 个失败。我上传了相同的文件,它有时只返回 size = 0,通常表单工作正常。 有人知道如何解决这个问题吗?

【问题讨论】:

  • 谢谢,但我的问题不一样,就像我说的我上传了同一个文件,有时会返回size = 0,如果与文件大小有任何冲突,每次我都会返回0提交表格。
  • OK - 同一设备上的同一文件出现间歇性问题。您还有更多信息可以帮助我们吗?例如,文件有多大?上传失败的时间会比成功的上传时间长吗?您将max_input_timemax_execution_time 设置为什么?另外,stackoverflow.com/questions/12707230/… 是否符合您的问题?
  • 不,这个问题与我的问题不符。我对图像没有任何问题。图片提交得很好。我只对手机上“浏览”按钮下的文件有问题(如 .xls、.pdf)。 “照片库”中的文件提交时没有任何错误。只有在上传 .xls 和 .pdf 之类的文件时,我才会遇到很少的问题。

标签: php iphone ipad file-upload


【解决方案1】:

我最近遇到了同样的问题并到达这里。自 2016 年以来,这似乎是一个长期运行的 IOS 错误(或规范)。我们从

File 类有 arrayBuffer() 我试过了。到目前为止,它在我的测试环境中运行良好。如果出现不良副作用等,我不是 100% 有信心。只需创建一个不会被销毁的新 File 对象。

async onChange(e: any) {
    const file: File = e.currentTarget.files[0] as File;
    const buf = await file.arrayBuffer();
    const clone = new File([buf], file.name, { type: file.type });
    this.setState({ file: clone });    
}

克隆对象在离开页面之前是有效的。 new File([file]... 不起作用,它是参考副本。

【讨论】:

    猜你喜欢
    • 2015-09-23
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2011-06-29
    相关资源
    最近更新 更多