我正在尝试使用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>
答案 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
希望有所帮助