首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在php中上传多个文件

在php中上传多个文件
EN

Stack Overflow用户
提问于 2010-04-24 19:42:43
回答 13查看 417.2K关注 0票数 134

我想上传多个文件,并将它们存储在一个文件夹中,并获取路径并将其存储在数据库中…任何好的例子,你寻找做多个文件上传...

注意:文件可以是任何类型...

EN

回答 13

Stack Overflow用户

发布于 2012-08-17 21:11:08

我知道这是一个老帖子,但一些进一步的解释可能会对试图上传多个文件的人有用……下面是你需要做的:

代码输入名称必须定义为数组,即name="inputName[]"

  • Input元素必须有代码或仅使用multiple

  • In你的PHP文件使用语法"$_FILES['inputName']['param'][index]"

  • 确保查找空文件名和路径,数组可能包含空字符串< multiple="multiple" >E215>。在count之前使用array_filter()

下面是一个糟糕的例子(只显示相关的代码)

HTML:

代码语言:javascript
复制
<input name="upload[]" type="file" multiple="multiple" />

PHP:

代码语言:javascript
复制
//$files = array_filter($_FILES['upload']['name']); //something like that to be used before processing files.

// Count # of uploaded files in array
$total = count($_FILES['upload']['name']);

// Loop through each file
for( $i=0 ; $i < $total ; $i++ ) {

  //Get the temp file path
  $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

  //Make sure we have a file path
  if ($tmpFilePath != ""){
    //Setup our new file path
    $newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i];

    //Upload the file into the temp dir
    if(move_uploaded_file($tmpFilePath, $newFilePath)) {

      //Handle other code here

    }
  }
}

希望这能有所帮助!

票数 300
EN

Stack Overflow用户

发布于 2011-12-18 16:37:39

可以选择多个文件,然后使用

<input type='file' name='file[]' multiple>

执行上传的示例php脚本:

代码语言:javascript
复制
<html>
<title>Upload</title>
<?php
    session_start();
    $target=$_POST['directory'];
        if($target[strlen($target)-1]!='/')
                $target=$target.'/';
            $count=0;
            foreach ($_FILES['file']['name'] as $filename) 
            {
                $temp=$target;
                $tmp=$_FILES['file']['tmp_name'][$count];
                $count=$count + 1;
                $temp=$temp.basename($filename);
                move_uploaded_file($tmp,$temp);
                $temp='';
                $tmp='';
            }
    header("location:../../views/upload.php");
?>
</html>

选定的文件将作为数组接收,其中包含

存储第一个文件名的$_FILES['file']['name'][0]

存储第二个文件名的$_FILES['file']['name'][1]

诸若此类。

票数 40
EN

Stack Overflow用户

发布于 2012-10-01 14:41:24

HTML

使用按钮调用函数id='dvFile';

  • create a button;

  • onclick创建div

JavaScript

代码语言:javascript
复制
function  add_more() {
  var txt = "<br><input type=\"file\" name=\"item_file[]\">";
  document.getElementById("dvFile").innerHTML += txt;
}

PHP

代码语言:javascript
复制
if(count($_FILES["item_file"]['name'])>0)
 { 
//check if any file uploaded
 $GLOBALS['msg'] = ""; //initiate the global message
  for($j=0; $j < count($_FILES["item_file"]['name']); $j++)
 { //loop the uploaded file array
   $filen = $_FILES["item_file"]['name']["$j"]; //file name
   $path = 'uploads/'.$filen; //generate the destination path
   if(move_uploaded_file($_FILES["item_file"]['tmp_name']["$j"],$path)) 
{
   //upload the file
    $GLOBALS['msg'] .= "File# ".($j+1)." ($filen) uploaded successfully<br>";
    //Success message
   }
  }
 }
 else {
  $GLOBALS['msg'] = "No files found to upload"; //No file upload message 
}

通过这种方式,您可以添加所需数量的文件/图像,并通过php脚本处理它们。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2704314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档