0

エラーはなく、動作しているように見えます。ただし、画像はサーバーにアップロードされません。

ローカルホストで動作する同じコード。

この問題について何かを読んでも解決策はありません:

同じ問題:

http://www.uploadify.com/forums/discussion/6974/upload-ok-but-file-not-in-target-folder/p1

http://www.uploadify.com/forum/#/discussion/5527/upload-does-not-work-no-errors/p1

Jquery:

$("#fileUpload2").fileUpload({
    'uploader': 'uploadify/uploader.swf',
    'cancelImg': 'uploadify/cancel.png',
    'script': 'uploadify/upload.php',
    'folder': '/files',
    'multi': true,
    'buttonText': 'start upl',
    'checkScript': 'uploadify/check.php',
    'displayData': 'speed',
    'simUploadLimit': 2,
    'onComplete':function(event, ID, fileObj, response, data){
        foto=foto+fileObj.name;

        }
});

upload.php

<?php
if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_GET['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
    $ff= $_FILES['Filedata']['name'];
    echo $ff;
    // Uncomment the following line if you want to make the directory if it doesn't exist
    // mkdir(str_replace('//','/',$targetPath), 0755, true);

    move_uploaded_file($tempFile,$targetFile);
}

echo '1';

?>
4

1 に答える 1

0

そこに無効なエラー処理があります。空でない $_FILESをチェックすることは、アップロードの成功をチェックする適切な方法ではありません。アップロードに失敗しても、データは $_FILES に入力されます。最低限、あなたは持っているべきです

if ($_FILES['Filedata']['error'] !== UPLOAD_ERR_OK) {
   die("Upload failed with error code " . $_FILES['Filedata']['error'];
}

次に、表示されるエラー コードを確認します: http://php.net/manual/en/features.file-upload.errors.php

また、ユーザーが指定したファイル名を move() 呼び出しで直接使用しているため、悪意のあるユーザーがアップロードしたファイルをサーバー上のどこにでも落書きできるため、システムを完全に乗っ取ることができます。基本的な PHP (および Web) セキュリティを習得するまで、このコードを実際の Web サイトに配置しないでください。

于 2013-01-25T15:51:16.333 に答える