【问题标题】:Check file exist on UploadiFive检查文件是否存在于 UploadiFive
【发布时间】:2020-02-10 20:27:21
【问题描述】:

我下载了这个上传示例:https://github.com/xmissra/UploadiFive

发送 apernas 文件时,它可以正常工作,但发送多个文件时,检查文件是否已存在的功能会出现问题。显然,循环不会忽略文件刚刚发送并显示要求替换文件的消息。有没有办法解决这个问题?

这是检查文件是否已经存在的函数。

$targetFolder = 'uploads'; // Relative to the root and should match the upload folder in the uploader 
script

if (file_exists($targetFolder . '/' . $_POST['filename'])) {
    echo 1;
} else {
    echo 0;
}

您可以在以下位置测试上传工作:http://inside.epizy.com/index.php

*提交一个文件,然后发送多个进行测试。

我尝试过这种方式,但没有成功:

$targetFolder = 'uploads';

$files = array($_POST['filename']);

foreach($files as $file){
if (file_exists($targetFolder . '/' . $file)) {
    echo 1;
} else {
    echo 0;
}

【问题讨论】:

标签: php file upload uploadify


【解决方案1】:

当您要上传多个文件时,请记住这些事项;

HTML

  1. 输入名称必须是数组name="file[]"
  2. 在输入标签中包含multiple关键字。

例如; <input name="files[]" type="file" multiple="multiple" />

PHP

  1. 使用语法$_FILES['inputName']['parameter'][index]
  2. 使用array_filter()查找空文件

    $filesCount = count($_FILES['upload']['name']);
    
    // Loop through each file
    for ($i = 0; $i < $filesCount; $i++) {
    
     // $files = array_filter($_FILES['upload']['name']); use if required 
    
    if (file_exists($targetFolder . '/' . $_FILES['upload']['name'][$i])) {
        echo 1;
    } else {
    echo 0;
    }
    }
    

【讨论】:

  • 我用这种方法试过了,但没用:$targetFolder = 'uploads'; $files = array($_POST['filename']); foreach($files as $file){ if (file_exists($targetFolder . '/' . $file)) { echo 1; } else { echo 0; }
  • 您是否在 html 的输入标签中启用了多个文件。 w3schools.com/tags/att_input_multiple.asp
  • 如果您在输入标签中使用了多个。您必须使用 $_FILES 而不是 $_POST 来获取文件名。
  • 它也没有这样工作$files = array($_FILES['filename']);
  • 这不是使用 $_FILES 的正确方法:php.net/manual/en/features.file-upload.php
猜你喜欢
  • 1970-01-01
  • 2012-03-14
  • 2022-01-20
  • 2013-09-19
  • 2013-06-04
  • 2011-05-14
  • 1970-01-01
  • 2012-07-29
  • 2018-01-15
相关资源
最近更新 更多