0

自分のサイトに Uploadify UI をインストールして、ユーザーが自分のサイトにファイルをアップロードできるようにしました。現在は機能していますが、ファイルをアップロードする場合とアップロードしない場合があるという問題があります。したがって、pngファイルをアップロードできますが、問題なく動作します。しかし、Excelファイルをアップロードすると、アップロードできるものもあれば、アップロードできるものもあります。

問題の原因を確認するために何を確認すればよいかわかりません。

デバッガーを 'debug' : true でオンにしようとしましたが、手がかりが得られませんでした。PHP ログも確認しましたが、エラーや警告はありませんでした。

他に何を確認できるかはわかりませんが、これに関するあらゆる種類のヘルプを提供します.

これを設定するための私のJavaScriptコードは次のとおりです

<?php $timestamp = time();?>

    <script type="text/javascript">
    $(function() {
        $('#file_upload').uploadify({
                'formData'     : {
                'timestamp' : '<?php echo $timestamp;?>',
                'token'     : '<?php echo md5($timestamp);?>',
                'upload_path': 'ticketing_center/',
                'allowed_extentions': 'jpg,jpeg,gif,PNG,JPG,png,JPEG, jpeg,zip,rar,doc,docx,cvs,xls,xlsx,txt'
            },
            'auto' : true,
            'debug' : true,
            'swf'      : '../../includes/uploadify.swf',
            'uploader' : '../../includes/uploadify.php',
            'fileSizeLimit' : '50MB',
            'fileTypeExts' : '*.gif; *.jpg; *.JPG; *.png; *.PNG; *.JPEG; *.jpeg; *.zip; *.rar; *.doc; *.docx; *.cvs; *.xls; *.xlsx; *.txt;',
            'onUploadSuccess' : function(file, data, response) {
                if(data != 'INVALID'){
                    $('#attached_files').append('<input type="hidden" name="attachments[]" value="'+ $.trim(data) +'" />');
                } else {
                    alert('Invalid File Type');
                }
            }

        });
    });
</script>

以下は私のPHPスクリプトです

<?php
    $targetFolder = '';
    $verifyToken = '100';
    $actualToken = '';
    $fileTypes = array('jpg','jpeg','gif','png');

    if(isset($_POST['upload_path'])){
        $targetFolder = $_POST['upload_path'];
    }

    if(isset($_POST['timestamp'])){
        $verifyToken = md5($_POST['timestamp']);
    }

    if(isset($_POST['token'])){
    $actualToken = $_POST['token'];
    }

    if(isset($_POST['allowed_extentions'])){

        $types = explode(',', $_POST['allowed_extentions']);

        if(count($types) > 0 ){
            $fileTypes = $types;
        }
    }


    if (!empty($_FILES) && $actualToken == $verifyToken) {
        $tempFile = $_FILES['Filedata']['tmp_name'];
        $targetPath =  ROOT_FIXED . UPLOAD_DIR . $targetFolder;   //$_SERVER['DOCUMENT_ROOT']
        $targetPath = str_replace( "//", "/", $targetPath);
        $new_filename = USER_ID . '_' . time() . '_' . str_replace(" ", "_", $_FILES['Filedata']['name']);
        $targetFile = $targetPath . $new_filename;

        // Validate the file type
        //$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
        $fileParts = pathinfo($new_filename);  //str_replace(" ", "_", $_FILES['Filedata']['name'])

        if (in_array($fileParts['extension'],$fileTypes)) {
            move_uploaded_file($tempFile,$targetFile);
            echo trim($new_filename);
        } else {
            echo 'INVALID';
        }
    }
    ?>

お時間をいただきありがとうございます。

4

1 に答える 1

1

理由を理解するのに役立つコメントなしで、人々があなたの質問に投票する理由がわかりません。しかし、同じ問題に遭遇する他の人を助ける方法。ここに解決策があります

私のphp.iniファイルの構成は低い制限に設定されていました。最大アップロード ファイルは 2M に設定されました

php.ini に移動して、

  • upload_max_filesize - 50M に設定

  • post_max_size - 50M に設定

  • max_execution_time - 120 に設定

  • max_input_time - 50 に設定

Apache を再起動すると、最大 50MB のサイズのファイルをアップロードできるようになります。

于 2013-09-01T17:21:59.730 に答える