簡體   English   中英

jQuery文件上傳未上傳

[英]jQuery File Upload not Uploading

當我使用HTML <input type="file"> ,此PHP代碼有效,但在最底部使用jQuery文件上傳腳本時,此PHP代碼不起作用。

  1. 我相信所有.js和.css文件都已解決並且可以正常工作(經過測試)
  2. 我相信uploadUrl: 'doc_upload.php', fileInputName: 'userfile'是正確的。 不知道,因為沒有錯誤顯示。
  3. 使用echo getcwd(); ,我相信我使用的是正確的路徑
  4. 我只上傳1 kb .TXT文件
  5. 我沒有任何錯誤,並且所有錯誤報告均已啟用並已最大化

我要說的一個可能也是不起作用的事情是,盡管單擊文件名旁邊的文件名旁邊的“上載和取消”按鈕似乎沒有全部顯示。

回顯$ _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>

mdpalow-

由於頂部的if語句,您可能沒有得到任何錯誤或輸出:

if (isset($_POST['submit']) && $_FILES['userfile']) {

嘗試將其放在頂部以輸出所有post變量,以便您可以確定實際發送的post變量(如果有):

print_r($_POST);

我之前已經完成了文件上傳,但是沒有使用該特定庫上傳-我的猜測是它只是發送mulipart數據而不是POST變量。 在瀏覽器開發人員工具中查看預覽標頭也將闡明正在發送的數據。

問題是jQuery插件通過AJAX上傳文件。 為了解決此問題,請按照以下步驟操作:

  • 將您的HTML和PHP代碼保存在單獨的文件中。
  • 在新的PHP文件中,刪除isset($ _ POST ['submit'])驗證,因為沒有提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM