更新
所以我想我已经追踪到文件不可用:
我已经检查了上传文件夹和 tmp(高于 doc root)的所有权。两者似乎都拥有正确的所有权,upload.php 文件也是如此
我检查了 $_FILES 并显示
[name] => sampleImage3.jpg [type] => image/jpeg [tmp_name] => /tmp/phpypdbTb [error] => 0 [size] => 19791
所以文件被加载到 tmp 文件夹中
但是,当我尝试
复制($_FILES['file']['tmp_name'],$uploadFile);
在哪里
tmp_name 是 mnt/storage/vhosts/domain.com/tmp/phpypdbTb uploadFile 是 uploads/sampleImage3.jpg
它抛出一个
警告:复制(上传/sampleImage3.jpg):无法打开流:没有这样的文件或目录
任何想法如何调试和弄清楚发生了什么?
原来的
我想通过ajax上传文件。
html是
<div class="container">
<form method="post" action="" enctype="multipart/form-data" id="myform">
<div class='preview'>
<img src="" id="img" width="100" height="100">
</div>
<div >
<input type="file" id="file" name="file" />
<input type="button" class="button" value="Upload" id="but_upload">
</div>
</form> </div>
JavaScript 是
jQuery(document).ready(function(){
jQuery("#but_upload").click(function(){
var fd = new FormData();
var files = jQuery('#file')[0].files;
if(files.length > 0 ){
fd.append('file',files[0]);
jQuery.ajax({
url: '/upload.php',
type: 'post',
data: fd,
contentType: false,
processData: false,
success: function(response){
if(response != 0){
console.log(response);
//jQuery(".preview img").show(); // Display image element
}else{
alert('file not uploaded');
}
},
});
}else{
alert("Please select a file.");
}
});
});
加载upload.php
<?php
if(isset($_FILES['file']['name'])){
/* Getting file name */
$filename = $_FILES['file']['name'];
$location = "/uploads";
$imageFileType = pathinfo($location,PATHINFO_EXTENSION);
$imageFileType = strtolower($imageFileType);
/* echo "<pre>";
print_r($_FILES);
echo "</pre>";
*/
/* Valid extensions */
$valid_extensions = array("jpg","jpeg","png","JPG");
move_uploaded_file($_FILES['file']['tmp_name'],'$location/$filename');
$response = 0;
/* Check file extension */
// if(in_array(strtolower($imageFileType), $valid_extensions)) {
/* Upload file */
if(move_uploaded_file($_FILES['file']['tmp_name'],'$location/$filename')){
$response = $location;
}
//}
echo $response;
}
echo 0;
ajax 调用没有问题,我什至可以 print_r FILES 变量
Array ([file] => Array ([name] => Organ Pipes and SGW.jpg [type] => image/jpeg [tmp_name] => /tmp/phpQxJK34 [error] => 0 [size] => 373852)
但是文件不会上传。任何想法我做错了什么?