关于在php中上传csv文件的不清楚

buy*_*ies 0 php mysql file-upload

所以我想:

  • 上传一个csv文件,其中包含一个学生编号列表,每行一个(每行392232).

  • 用学生编号填充一个数组(因为我已经有一个进程代替从一组学生数字中查找id并存储等等,如果他们要手动添加学生)

我一直在寻找这里的教程.

但是我对此有点困惑:

if(isset($_FILES['csv_file']) && is_uploaded_file($_FILES['csv_file']['tmp_name'])){...

'tmp_name'从哪里建立?

无论如何,如果有人能解释我应该怎么做,我会很感激帮助.

非常感谢,

编辑:增加了它不工作的进度.

if(isset($_POST['csv_submit'])){
    if(isset($_FILES['csv_file']) && is_uploaded_file($_FILES['csv_file']['tmp_name'])){



        //upload directory
        $upload_dir = "/ece70141/csv_files/";
        //create file name
        $file_path = $upload_dir . $_FILES['csv_file']['name'];

        //move uploaded file to upload dir
            // GETTING THE ERROR BELOW.
        if (!move_uploaded_file($_FILES['csv_file']['tmp_name'], $file_path)) {
            //error moving upload file
            echo "Error moving file upload";
        }

        print_r($_FILES['csv_file']);

        //delete csv file
        unlink($file_path);
    }
}
Run Code Online (Sandbox Code Playgroud)

Rud*_*ser 5

$_FILES是一个类似的魔法超全球$_POST.它是在最后一个请求中上传的每个文件的数组,以及存储该文件的位置(tmp_name).

tmp_name 基本上是由Web服务器生成的,让PHP知道它们存储文件的位置.

您在$_FILES阵列的每个元素中都可以使用以下项目:

  1. 名称(文件的原始名称)
  2. type(文件的MIME类型,即text/plain)
  3. tmp_name(上传文件的临时位置的路径)
  4. 错误(上传时出错,无错误时为0)
  5. size(上传文件的大小,以字节为单位)

从我在代码中看到的内容来看,这将完美无缺,正如评论中所讨论的那样,我认为问题在于HTML.

您链接到的教程的<form ..>标记定义不正确.对于文件上传,您需要设置enctype属性,下面是它应该是什么样子:

<form action="" method="post" enctype="multipart/form-data">
Run Code Online (Sandbox Code Playgroud)