【问题标题】:Uploading files using Uplodify works sometime and sometime it does not使用 Uplodify 上传文件有时有效,有时无效
【发布时间】:2013-09-02 01:31:55
【问题描述】:

我在我的网站上安装了 Uploadify UI,因此我可以允许用户将文件上传到我的网站。它现在可以工作,但问题是它有时会上传文件,有时不会。所以我可以上传一个png文件,它不会有任何问题。但是当我上传 excel 文件时,它会允许上传一些文件,而一些它的工作允许它。

我不确定我可以检查什么来查看导致问题的原因。

我试图打开调试器“调试”:是的,但这并没有给我任何线索。我还查看了我的 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';
        }
    }
    ?>

感谢您的时间和帮助

【问题讨论】:

  • 上传文件失败后究竟会发生什么?是否挂起,是否出现白屏等问题?
  • 不,它就像已上传一样。它需要完成的快闪秀。没有任何类型的错误,它完成但文件不会移动到服务器。我希望我得到一个可以让我开始的错误

标签: php file-upload uploadify


【解决方案1】:

我不明白为什么人们会在没有帮助您理解原因的评论的情况下否决您的问题。但任何帮助其他人的方法都会遇到同样的问题。这是解决方案

我的 php.ini 文件中的配置设置为下限。最大上传文件设置为 2M

转到 php.ini 并找到

  • upload_max_filesize - 设置为 50M

  • post_max_size - 设置为 50M

  • max_execution_time - 设置为 120

  • max_input_time - 设置为 50

重启我们的 apache,现在你应该可以上传最大 50MB 的文件了

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2012-08-02
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多