Php ajax请求后移动上载的文件失败

Php ajax请求后移动上载的文件失败,php,ajax,file-upload,move-semantics,form-data,Php,Ajax,File Upload,Move Semantics,Form Data,我知道这个问题已经解决了好几次,但没有一个解决方案对我有效 我有一个javascript函数,它提取一个 function imagePreload(str) { var timestamp = new Date().getTime(); str = str + "&timestamp=" + timestamp; var key = []; var value = []; var queriesarray = str.split('&'); for(i = 0; i <

我知道这个问题已经解决了好几次,但没有一个解决方案对我有效

我有一个javascript函数,它提取一个

function imagePreload(str)
{
var timestamp = new Date().getTime();
str = str + "&timestamp=" + timestamp;
var key = [];
var value = [];
var queriesarray = str.split('&');
for(i = 0; i < queriesarray.length; i++)
{
    var pair = queriesarray[i].split('=');
    key[i]= pair[0];
    value[i]= pair[1];
}
for(i = 0; i < queriesarray.length; i++)
{
    if (key[i]=="menu_id") {var menuid = value[i];}
    if (key[i]=="menucategories_id") {var catid = value[i];}
}
for(i = 0; i < queriesarray.length; i++)
{
    if (value[i]=="business") {var fileurlfield = "uploadbizimageid";}
    if (value[i]=="category") {var fileurlfield = "uploadcatimageid" + catid;}
    if (value[i]=="item") {var fileurlfield = "uploaditemimageid" + menuid;}
}

var fileInput = document.getElementById(fileurlfield);

var file = fileInput.files[0];
var imageType = /image.*/;

if (file.type.match(imageType)) {
    var reader = new FileReader();
    reader.onload = function(e) {
        var img = new Image();
        img.src = reader.result;
    }
    reader.readAsDataURL(file); 

} else {
    alert("File not supported!");
}
document.getElementById("maskid").style.display = "block";
document.getElementById("imageuploadcontainerid").style.display = "block";

var filetosend = new FormData();
filetosend.append( 'image', file);

$.ajax({
        url: "index.php?option=com_jumi&fileid=13&format=raw&" + encodeURI(str),
        type: "POST",
        data: filetosend,
        processData: false,
        contentType: false,
        error: function (jqXHR, textStatus, errorThrown) {
            alert("AJAX error: " + textStatus + ' : ' + errorThrown);
        },
        success: function(html) {alert("Orwight!");
        document.getElementById('imageuploadcontainerid').innerHTML = html;
        }
});
}   
每次我调用他的脚本时,上载都会失败,并且不会报告任何错误(即没有错误号)。var转储显示file error变量的值为0,报告的文件大小顺序与原始文件相同,并且它有一个tmp名称。换句话说,文件在TMP目录中

正在写入的目录中的目录权限为777。没有跨域问题(我想也没有CORS问题),因为脚本是从同一个网站调用的(PHP实际上在Joomla 3.4网站的JUMI应用程序中)。但是,脚本总是无法上载文件(页面返回“/images/restaurants/1/businesslogo.jpgNot upload,因为出现错误#”。(因为在返回错误字符串之前,我也回显了目标路径)


有人知道原因以及如何正确上传脚本吗?我完全被困在这个问题上,因为据我所知,一切都应该正常。

我比我想象的更快地解决了这个问题,结果是我还必须在目标路径中指定文档根,所以我修改了

 $target_path = "/images/restaurants/".$rest_id."/";
作为


现在它可以工作了:-)

您是否可以尝试访问web根目录上方的文件夹?open_basedir问题?图像目录位于网站根目录下(即网站的子目录)
 $target_path = "/images/restaurants/".$rest_id."/";
$target_path = $_SERVER['DOCUMENT_ROOT']."/images/restaurants/".$rest_id."/";