我写了一个用于上传.txt文件的php文件。我对此很陌生,所以请在这里忍受。
所以我将从问题开始,基本上我得到的输出是:“系统无法找到指定的路径。”
事实:
我通过ftp管理我的wwwroot文件,因为我正在为我的网页使用商业主机。
我的代码:
<?php
if(isset($_FILES['notes'])){
$errors= array();
$file_name = $_FILES['notes']['name'];
$file_size =$_FILES['notes']['size'];
$file_tmp =$_FILES['notes']['tmp_name'];
$file_type=$_FILES['notes']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['notes']['name'])));
$extensions = array("txt");
if(in_array($file_ext,$extensions )=== false){
$errors[]="extension not allowed, please choose a txt file.";
}
if($file_size > 5097152){
$errors[]='File size must be exactly 5 MB !';
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"/uploads".$file_name);
echo "Successful Upload, Thanks !!";
}else{
print_r($errors);
}
}
?>
我第一次尝试/ wwwroot / uploads(没有用)现在我尝试过/上传。
我希望我已经提供了适量的信息。
非常感谢您的时间!
-M
答案 0 :(得分:1)
好的,请尝试更改此行:
move_uploaded_file($file_tmp,"/uploads".$file_name);
对此:
move_uploaded_file($file_tmp,"uploads/".$file_name);
编辑:
好的,因为更改上面文件路径错误,文件本身可能有问题。
尝试更改
$file_name = $_FILES['notes']['name'];
到
$file_name = basename($_FILES['notes']['name']);
编辑:如果这不起作用,另一个重要的注意事项:
您需要将要上传的目录的所有权设置为“apache”(假设您使用的是apache服务器),以便能够接受从Web上传到此文件夹的内容。
这将是这样的:
chown apache:apache uploads -R
然后将权限设置为775。
- 如果您不在Linux系统上,只是在Windows设备上使用开发服务器,则没有必要。
有关更多错误信息,请将其放在代码顶部:
error_reporting(E_ALL);
ini_set('display_errors', '1');
答案 1 :(得分:0)
如果您的php文件位于 uploads 文件夹的同一文件夹中,请将文件的目的地从/uploads
更改为uploads/
。如果没有,则必须使用绝对路径插入上传文件夹的路径,或使用../
将文件定向到正确的路径。