Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在PHP Wordpress中上载文件_Php_Jquery_Ajax_Wordpress_File Upload - Fatal编程技术网

无法在PHP Wordpress中上载文件

无法在PHP Wordpress中上载文件,php,jquery,ajax,wordpress,file-upload,Php,Jquery,Ajax,Wordpress,File Upload,我试图在wordpress的主题文件中插入PHP文件上传的代码。一切正常,但没有上传文件。我认为我在ajax部分提供给它的url不起作用。这是我的代码 <?php $uploaddir = '/uploads/'; $file = $uploaddir . basename($_FILES['uploadfile']['name']); if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { ech

我试图在wordpress的主题文件中插入PHP文件上传的代码。一切正常,但没有上传文件。我认为我在ajax部分提供给它的url不起作用。这是我的代码

<?php
$uploaddir = '/uploads/'; 
$file = $uploaddir . basename($_FILES['uploadfile']['name']); 

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 
  echo "success"; 
} else {
    echo "error";
}
?>

HTML是

<script type="text/javascript" >
    $(function(){
        var btnUpload=$('#upload');
        var status=$('#status');
        new AjaxUpload(btnUpload, {
            action: 'upload-file.php',
            name: 'uploadfile',
            onSubmit: function(file, ext){
                 if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
                    // extension is not allowed 
                    status.text('Only JPG, PNG or GIF files are allowed');
                    return false;
                }
                status.text('Uploading...');
            },
            onComplete: function(file, response){
                //On completion clear the status
                status.text('');
                //Add uploaded file to list
                if(response==="success"){
                    $('<li></li>').appendTo('#files').html('<img src="./uploads/'+file+'" alt="" /><br />'+file).addClass('success');
                } else{
                    $('<li></li>').appendTo('#files').text(file).addClass('error');
                }
            }
        });

    });
</script>
<div id="upload" ><span>Upload File<span></div><span id="status" ></span>

        <ul id="files" ></ul>

$(函数(){
var btnUpload=$('上传');
变量状态=$(“#状态”);
新AjaxUpload(btnUpload{
操作:“upload file.php”,
名称:“上载文件”,
onSubmit:函数(文件,ext){
如果(!(ext&&/^(jpg | png | jpeg | gif)$/.test(ext)){
//不允许扩展
text('只允许JPG、PNG或GIF文件');
返回false;
}
status.text('上传…');
},
onComplete:函数(文件、响应){
//完成后清除状态
状态。文本(“”);
//将上载的文件添加到列表
如果(响应=“成功”){
$(“
  • ”).appendTo(“#files”).html(“
    ”+file.addClass('success'); }否则{ $(“
  • ”).appendTo(“#files”).text(file).addClass('error'); } } }); }); 上载文件
      当我尝试查看响应时,它向我显示了简单的html raw。 任何能帮助我的人。它在本地主机上运行良好
      谢谢

      您检查过文件/文件夹所有权了吗?WordPress对与Web服务器用户相匹配的文件/文件夹的实际所有者不置可否,不管其他读写权限是什么。因此,例如在Ubuntu中,Apache2 web用户是“www数据”,任何/所有WordPress文件的所有权必须更改为“www数据”,以避免出现问题。在深入研究代码逻辑之前,我会先检查这一点。@JakeGould权限和owership很好,我认为有一个问题,它无法访问我在ajax中提供的url。。我把它放在主题文件夹中,作为wordpress.htaccess发行版。使用Firebug检查是否在php中正确传递了$file(例如:var_dump the$file);和chmod到777。