php - Uploadify:写入完成但没有上传文件

标签 php javascript jquery upload uploadify

我想使用 uploadify v.3.1 (flash) 上传图像。我单击“选择文件”,选择一个文件,文件已上传,但最终收到错误消息:

haus2.jpg (256KB) - HTTP 错误 (401)

php.ini 设置:

memory_limit: 256M
upload_max_filesize: 40M
post_max_size: 8M

我使用 uploadify 的 php 文件:

<script type="text/javascript">
    $(document).ready(function(){
        $(function() {
            $('#image_upload1').uploadify({
                'swf'            : '/project/swf/uploadify.swf',
                'uploader'       : '/project/includes/uploadify.php',
                'cancelImg'      : '/project/images/static/uploadify-cancel.png',
                'folder'         : '/project/images/uploaded/<?php echo $_SESSION['newCreatedID']; ?>',
                'multi'          : true,
                'auto'           : true,
                'removeCompleted': false,
                'queueSizeLimit' : 10,
                'simUploadLimit' : 10,
                'fileExt'        : '*.jpg; *.jpeg; *.png; *.gif',
                'fileDesc'       : 'JPG Image Files (*.jpg); JPEG Image Files (*.jpeg); PNG Image Files (*.png), GIF (*.gif)',
                'onUploadError'  : function(file, errorCode, errorMsg, errorString) {
                    alert('The file ' + file.name + ' could not be uploaded: ' + errorString);
                },
                'onUploadSuccess': function(file, data, response) {
                    alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
                }
            });
        });
    });
</script>

<form action="step2_do.php" name="newEntry" id="newEntry" method="post" enctype="multipart/form-data">
    <input id="image_upload1" name="image_upload1" type="file" />
    <input type="submit" value=" Submit" id="submit-btn" class="inputform" />
</form>

没有抛出任何错误。

但是没有错误。在 Firebug 中永远不会显示错误。上传的文件夹有 777 权限,我删除了其中建议的 .htaccess

uploadify.php:

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];

    mkdir(str_replace('//','/',$targetPath), 0777, true);
    move_uploaded_file($tempFile,$targetFile);
    echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
}

我找不到任何错误。我可以进行哪些调试?

我没有收到任何错误

error_reporting(E_ALL);
ini_set("display_errors", 1);

编辑:

现在我完全忘记了 htaccess 需要密码才能访问该网站。现在文件上传已完成,但服务器上没有文件夹/文件。我实现了 onUploadSuccess ,它给我带来了以下错误消息:

The file haus.jpg was successfully uploaded with a response of true:<br />
<b>Warning</b>:  mkdir() [<a href='function.mkdir'>function.mkdir</a>]: File exists in <b>/home/myuser/www/home/project/includes/uploadify.php</b> on line <b>21</b><br />
/haus.jpg

主要问题是我混淆了 uploadify 的旧 API 和新 API。为了调试我使用:

$request = implode(";", $_REQUEST);
file_put_contents('uploadify.txt', chr(10) . ": request" . $request, FILE_APPEND);

我的最终初始化如下:

$(document).ready(function(){
    $(function() {
        $('#image_upload1').uploadify({
            'swf'            : '/project/swf/uploadify.swf',
            'uploader'       : '/project/includes/uploadify.php',
            'formData'       : {'folder' : '/project/images/uploaded/<?php echo $_SESSION['newCreatedID']; ?>'},
            'multi'          : true,
            'auto'           : true,
            'removeCompleted': false,
            'queueSizeLimit' : 10,
            'simUploadLimit' : 10,
            'fileTypeExt'        : '*.jpg; *.jpeg; *.png; *.gif',
            'fileTypeDesc'       : 'JPG Image Files (*.jpg); JPEG Image Files (*.jpeg); PNG Image Files (*.png), GIF (*.gif)',
            'onUploadError'  : function(file, errorCode, errorMsg, errorString) {
                alert('The file ' + file.name + ' could not be uploaded: ' + errorString);
            },
            'onUploadSuccess': function(file, data, response) {
                alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
            }
        });
    });
});

formData 应该使用...

最佳答案

401建议用户上传前需要进行身份验证。

您可以尝试在参数列表中发回 $.cookie('sessionid'),以确保它知道哪个 session 正在执行上传。

关于php - Uploadify:写入完成但没有上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314223/

相关文章:

PHP:周从星期一开始,但星期日的 "monday this week"会在下周成为星期一

javascript - React setState 不更新复选框选中状态

javascript - 如何创建表示包含业务对象及其图形表示(jquery DOM 元素)的 Car 对象的 JS 对象

javascript - 删除必需的属性 google recaptcha v3

javascript - 如何使 div 可通过 tab/down 导航?

jquery - 带尖 Angular 的矩形边框样式

javascript - 高效比较两个数字范围

java - 向 HTTP 请求添加 cookie

php和mysql准时发送用户注销

php - 在哪里可以找到 phpMyAdmin 的 create_tables.sql?