我正在尝试使用php为我的网站创建一个简单的文件上传工具,我相信大部分代码都很好。我正在使用one.com,我有一个资产文件夹,然后在其中有一个图像文件夹,我希望将图像上传到。我不确定文件图像路径的内容。当我尝试上传图像时,“完成”会回显到页面,但我的图像不会出现在文件夹中。
if(isset($_POST['submit'])){
// GETTING INFO FROM FILE WE'VE UPLOADED
$file = $_FILES['image'];
$fileName = $_FILES['image']['name'];
$fileTmpName = $_FILES['image']['tmp_name'];
$fileSize = $_FILES['image']['size'];
$fileError = $_FILES['image']['error'];
$fileType = $_FILES['image']['type'];
//Splitting the filename on the extension
$fileExt= explode ('.', $fileName);
//Getting the extension from the file and tolower so we can find out if it is an allowed file type
$fileActualExt = strtolower(end($fileExt));
//File types that we are going to allow
$allowed = array('jpg','jpeg','png');
if(in_array($fileActualExt, $allowed)){
if($fileError === 0){
$fileNameNew = uniqid('', true).".".$fileActualExt;
$fileDestination = '/assets/images/'.$fileName; //PROBLEM??
move_uploaded_file($FileTmpName, $fileDestination);
echo"Done?";
}else{
echo "There was an error?";
}}
else {
echo "You cannot upload files of this type";
}}
答案 0 :(得分:0)
PHP是否有权写入该目录?
你没有在move_uploaded_file()上检查错误,你只是回应"完成了?"。
检查images目录的权限,然后检查文件是否已被移动。
if(move_uploaded_file($FileTmpName, $fileDestination)){
//File was moved
}else{
//Error
}
另外,请尝试更改
$fileDestination = '/assets/images/'.$fileName; //PROBLEM??
到
$fileDestination = 'assets/images/'.$fileNameNew; //PROBLEM??
希望有所帮助!
答案 1 :(得分:0)
您使用的路径是错误的。您需要完整路径或相对于您运行的文件位置的路径。尝试
$fileDestination = getcwd().'/assets/images/'.$fileName;
表示完整路径,或只是
$fileDestination = './assets/images/'.$fileName;
表示相对于当前目录的路径。这假定您运行的文件位于包含assets文件夹的同一目录中。