如何在php中移动上传的文件?

时间:2014-03-31 18:04:47

标签: php html

这是我用于在php上传多个文件的html代码。我想将图像名称存储在数据库中,并将文件上传到文件夹中:

<input name="userfile[]" type="file" multiple="multiple"/><br />
<input name="userfile[]" type="file" multiple="multiple"/><br />

if(isset($_FILES['file']['tmp_name'])){
            $num_files = count($_FILES['file']['tmp_name']);
            for($i=0; $i < $num_files;$i++){
                if(!is_uploaded_file($_FILES['file']['tmp_name'][$i])){
                    $messages[] = 'No file uploaded';
                }
                else{
                    if (file_exists("images/Locations" . $_FILES["file"]["name"]))
                      {

                      }
                    else
                      {
                      if ($_FILES["file"]["error"] > 0){
                      $file = fopen("test.txt","w");
                            echo fwrite($file,"Not uploaded");
                            fclose($file);
                        }
                        else{
                            move_uploaded_file($_FILES['file']['tmp_name'][$i],"images/Locations");
                        }
                      }

                }
            }
    }

所以任何人都可以告诉我在哪里犯了错误。我想将图像的名称存储到数据库中,所以当我写错误时我怎么能这样做,它显示错误代码0,所以错误代码0是什么。

2 个答案:

答案 0 :(得分:0)

您的输入文件类型名称为"userfile"

您正在使用PHP脚本

$_FILES['file']['tmp_name']

这就是问题所在。

相应地更改它们,以便在处理上传的脚本上使用正确的输入名称。

答案 1 :(得分:0)

我第一眼看到的错误是:

<input name="userfile[]" type="file" multiple/><br />

这应该只有一次因为多重属性,它根据所选图像的数量形成多维数组。

将if条件更改为

if(count($_FILES['userfile']['name']> 0)){

那应该给你一个开始。如果您发现任何问题,请告诉我。