将文件从本地文件系统上传到php服务器的问题

时间:2018-05-19 20:38:14

标签: php html file

我正在尝试使用php从本地文件系统上传文件到远程服务器。

我正在使用move_uploaded_file函数,但是当我在本地文件系统上选择一个文件时,它会尝试在远程服务器上找到该文件,因此失败。也许我错过了什么。如果我尝试从C:\ Data \ abc.txt上传文件,请说。它试图在/server/abc.txt上找到该文件,因此无法上传该文件。如果我错过了什么,请告诉我。

<?
    if(isset($_FILES['image'])){
        $errors= array();
        $file_name = $_FILES['image']['name'];
        $file_size =$_FILES['image']['size'];
        $file_tmp =$_FILES['image']['tmp_name'];
        $file_type=$_FILES['image']['type'];
        $original = $root_path .$file_name; 

        echo $_FILES['image']['tmp_name'];

        if($file_size > 100097152){
            $errors[]='File size must be less than 100 MB';
        }

        if(empty($errors)==true){
            move_uploaded_file($file_tmp, '/uploads');
            echo "Success";
        }else{
            print_r($errors);
        }
    } 
?>
<html>
   <body>

      <form action="" method="POST" enctype="multipart/form-data">
         <input type="file" name="image" />
         <input type="submit"/>
      </form>

   </body>
</html>

3 个答案:

答案 0 :(得分:1)

难以回答请告诉我php版本并作为提示:你检查过is_uploaded_file()php.net/manual/function.is-uploaded-file.php

答案 1 :(得分:1)

我不知道我是否理解正确,但您的远程服务器意味着您的网络服务器? 由于浏览器的沙箱模式,此服务器无法直接访问您的文件系统。它只获取提交的文件,原始路径无关紧要。

函数 move_uploaded_file 的第二个参数必须是目标文件,而不是目标字典。

示例:

export class ParentComponent {
  constructor(private dateNotifier: DateNotifierService) {
    dateNotifier.event$.subscribe(vehicles => console.log(vehicles));
  }
}

答案 2 :(得分:1)

可以帮助在$ _FILES ['image'] ['error']中使用错误/状态报告 - 提供有关文件上传的错误/状态代码的反馈,这样您就可以更好地了解问题的根源可能是:

0 = success
1 = file too big (php.ini set)
2 = file too big (max file size directive)
4 = no file was uploaded
6 = no access to temp folder on server
7 = file could not be written to server
8 = upload stopped by a php extension

希望有所帮助