【发布时间】:2024-01-22 17:21:01
【问题描述】:
<?php
include_once 'database/dbconnect.php';
if(isset($_POST['btn-upload'])){
$file = rand(1000,100000)."-".$_FILES['file']['name'];
$file_loc = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type'];
$folder="uploads/";
move_uploaded_file($file_loc,$folder.$file);
$sql="INSERT INTO upload(file,type,size) VALUES('$file','$file_type','$file_size')";
mysql_query($sql);
}
?>
<?php
if( $_FILES['file']['name'] != "" ){
copy( $_FILES['file']['name'], "uploads/" ) or
die( "Could not copy file!");
}
else{
die("No file specified!");
}
?>
当我尝试使用 xampp 上传任何文件时,我遇到了一个错误,上面写着
警告:复制(first.pdf):无法打开流:第 4 行的 /opt/lampp/htdocs/new-project/upload.php 中没有这样的文件或目录 无法复制文件!
我什至尝试通过
更改文件夹权限sudo chmod -R 755 /opt/lampp/htdocs/new-project/
但是,没有任何改变。
【问题讨论】:
-
你能显示你用来复制文件的代码吗?
-
new-project下是否有一个名为uploads的文件夹?如果没有,那么您必须先创建它,然后才能将文件移动到新位置。为什么不使用move_uploaded_file()而不是copy()?$_FILES['file']['name']只是文件的原始名称。临时上传文件的位置可以在$_FILES['file']['tmp_name']下找到 -
我在new-project下有一个名为'uploads'的文件夹,我也更改了文件夹的权限。
-
@user3620928 - 请参阅我的最后一条评论。您应该使用
tmp_name而不是name。 -
好的,我已经修改了上传文件的代码,但是无法解决问题。