Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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
Javascript jQuery文件上载未上载_Javascript_Php_Jquery - Fatal编程技术网

Javascript jQuery文件上载未上载

Javascript jQuery文件上载未上载,javascript,php,jquery,Javascript,Php,Jquery,这段PHP代码在我使用HTML时有效,但在我使用最底层的jQuery文件上传脚本时无效 我相信所有的.js和.css文件都已被记录并运行(测试) 我相信上传URL:doc\u upload.php',fileInputName:userfile'是正确的。不知道,因为没有显示错误 使用echogetcwd(),我相信我使用的是正确的路径 我只上传了一个1KB.TXT文件 我没有收到任何错误,并且所有错误报告都已打开并处于最大状态 还有一件事是不起作用的,我想说这可能会给你一个线索,那就是文件名旁

这段PHP代码在我使用HTML
时有效,但在我使用最底层的jQuery文件上传脚本时无效

  • 我相信所有的.js和.css文件都已被记录并运行(测试)
  • 我相信上传URL:doc\u upload.php',fileInputName:userfile'是正确的。不知道,因为没有显示错误
  • 使用echo
    getcwd(),我相信我使用的是正确的路径
  • 我只上传了一个1KB.TXT文件
  • 我没有收到任何错误,并且所有错误报告都已打开并处于最大状态
  • 还有一件事是不起作用的,我想说这可能会给你一个线索,那就是文件名旁边的上传和取消按钮没有显示出来,尽管点击它们似乎确实起作用

    Echo'ing$\ POST在提交时没有显示任何内容,但我认为这是一个javascript的东西;不确定,因为我是初学者(3个月)

    PHP页面

        $filename = $_FILES['userfile']['name'];
        $tmpname  = $_FILES['userfile']['tmpname'];
        $filesize = $_FILES['userfile']['size'];
        $filetype = $_FILES['userfile']['type'];
    
        $fp = fopen($tmpname, 'r');
        $content = fread($fp, filesize($tmpname));
        $content = addslashes($content);
        fclose($fp);
    
        if(!get_magic_quotes_gpc()) {
    
            $filename = addslashes($filename);
        }
    
        $filename = preg_replace('/[ ]/', '~', $filename);
    
        $document_folder = $_SESSION['users_id'];
        $destfile = "../_documents/".$document_folder."/".$_FILES['userfile']['name'];
        move_uploaded_file( $_FILES['userfile']['tmpname'], $destfile );
    
    HTML页面

    <link type="text/css" rel="Stylesheet" href="../jqx.base.css" />
    
    <script type="text/javascript" src="../scripts/js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="../scripts/jqwidgets/jqxcore.js"></script>
    <script type="text/javascript" src="../scripts/jqwidgets/jqxbuttons.js"></script>
    <script type="text/javascript" src="../scripts/jqwidgets/jqxfileupload.js"></script>
    
    <script type="text/javascript">
    
    
            $(document).ready(function () {
          $('#jqxFileUpload').jqxFileUpload({ width: 300, uploadUrl: 'doc_upload_jquery.php', fileInputName: 'userfile', autoUpload: true });
            });
    
    
    
        $('#jqxFileUpload').on('uploadStart', function (event) {
                var fileName = event.args.file;
                $('#log').prepend('Started uploading: <strong>' + fileName + '</strong><br />');
        });
    
    
    
        $('#jqxFileUpload').on('remove', function (event) {
                var fileName = event.args.file;
            $('#log').prepend('Removed file: <strong>' + fileName + '</strong><br />');
    
        });
    
    
    
        $('#jqxFileUpload').on('uploadEnd', function (event) {
            var args = event.args;
            var fileName = args.file;
            var serverResponce = args.response;
        });
    
    
    
    </script>
    
    
    </head>
    <body>
    <div id="jqxFileUpload">
    </div>
    <div id="log" style="margin-top: 20px;"></div>
    <br />
    </body>
    </html>
    
    
    $(文档).ready(函数(){
    $('jqxFileUpload').jqxFileUpload({width:300,uploadUrl:'doc\u upload\u jquery.php',fileInputName:'userfile',autoUpload:true});
    });
    $('jqxFileUpload')。on('uploadStart',函数(事件){
    var fileName=event.args.file;
    $('#log').prepend('已开始上载:'+fileName+'
    '); }); $('jqxFileUpload')。在('remove',函数(事件){ var fileName=event.args.file; $('#log').prepend('删除的文件:'+fileName+'
    '); }); $('jqxFileUpload')。on('uploadEnd',函数(事件){ var args=event.args; var fileName=args.file; var serverresponse=args.response; });
    mdpalow-

    由于顶部的if语句,您可能没有收到任何错误或输出:

    if (isset($_POST['submit']) && $_FILES['userfile']) {
    
    尝试将其置于顶部以输出所有post变量,以便确定实际发送的post变量(如果有):


    我以前做过文件上传,但没有使用这个特定的库——我猜它只是发送mulipart数据而不是POST变量。查看浏览器开发工具中的预览标题也可以了解发送的数据。

    问题在于jQuery插件通过AJAX上传文件。要解决此问题,请执行以下步骤:

    • 将HTML和PHP代码保存在单独的文件中
    • 在新的PHP文件中,删除isset($_POST['submit'])验证,因为没有提交

    您是否正确地将
    enctype
    属性写入
    form
    tag中?从我看来,我没有表单要求。在我看到的所有示例中,我没有看到一个带有表单标记。而且,当我添加表单标记时,它会破坏jQuery。谢谢…检查错误,检查控制台,确保文件夹具有写入权限,并且会话已启动。
    如果这是您的完整输入,则需要id和/或name属性。将您的代码显示在“提交”按钮的位置,或者查看下面给出的答案。所需的全部内容是:uploadUrl:“doc\u upload\u jquery.php”,fileInputName:“userfile”。我不需要HTML。在我的专栏文章中,我说我不认为我真的是$u POST'ing,这可能已经被上面发布的答案所证实。我按照你的建议把它重新放进去,现在就放在那里,但还是没有显示。在chrome中使用开发工具是个好主意。它向我展示了一些东西。我已经将php部分剥离到最小值,并得到错误:未定义索引:tmpname。在这里查看$_文件的文档:我认为索引应该是“tmp_name”而不是“tmpname”。你和撒马尔罕都给出了一些很好的答案。然而,正是您建议使用内置的浏览器开发工具(我从来没有这样做过),最终开始给我提供很多线索。最后,决定将其分解为最低形式并找到:。把它放进去,一切都开始工作了。开发工具帮助我把所有的事情都解决了,包括了关于图像的第2部分。我喜欢我现在所处的位置,尽管我无法让页面刷新标题以显示新加载的文件,但我想用谷歌搜索更多内容,看看我是否能找到任何东西。完成。当我将php与代码的其余部分分离后,当我取出$\u POST时显示的所有错误都消失了。然而,在上传任何文件方面仍然没有什么神奇之处。
    print_r($_POST);