上传成功但没有文件上传?

时间:2013-11-01 00:21:37

标签: javascript php jquery uploadify directory-permissions

我正在尝试在网站上实施uploadify。

它说文件已上传,但当我查看上传文件夹时,没有任何内容。

我已经阅读了与此类似的其他帖子,但没有运气。

我确实读过另一个问题this answer

  

我在Linux机器上遇到过类似的问题。事实证明,我的服务器上的PHP配置是杯子。 PHP在SAFE MODE中运行。由于我通过FTP上传了Uploadify脚本,因此脚本文件以我的FTP用户详细信息存储在文件系统中。由于PHP的临时文件夹归服务器根所有,我的UID不匹配,即临时上传文件归属于root,而试图移动它的上传脚本归FTP用户所有。那就是它的碎片。

     

要解决此问题,我将uploadify php脚本的所有权更改为root,并从那里开始工作。

我对服务器端编码知之甚少,因为我更像是一个前端人员。如何更改权限?我正在使用1& 1主机。

以下是FileZilla中服务器上文件的屏幕截图:

FileZilla Screenshot

修改

我尝试上传一个ZIP文件,它说上传成功但没有上传。但是,我想知道我的脚本是否有错误,因为我不应该因为PHP脚本中的这一行而上传ZIP文件:

// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions

脚本不应该拒绝zip文件吗?

以下是我正在使用的代码,以防脚本出错,而不是我的服务器:

JS

$(function() {
    $('#file_upload').uploadify({
        'swf'      : 'uploadify.swf',
        'uploader' : 'uploadify.php',
        'onUploadSuccess' : function(file, data, response) {
            alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
        } 
    });
});

PHP

<?php

 $targetFolder = '/uploads/'; // Relative to the root

 $verifyToken = md5('unique_salt' . $_POST['timestamp']);

 if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];

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

if (in_array($fileParts['extension'],$fileTypes)) {
    move_uploaded_file($tempFile,$targetFile);
    echo '1';
} else {
    echo 'Invalid file type.';
}
}
?>

2 个答案:

答案 0 :(得分:2)

看起来令牌验证码就是问题所在。如果删除该功能,则上传应通过:)

您可以通过评论删除if()比较吗?

if (!empty($_FILES) && $_POST['token'] == $verifyToken) {行更改为:

if (!empty($_FILES) /* && $_POST['token'] == $verifyToken */) {

答案 1 :(得分:0)

似乎$ fileTypes在我的Linux PHP安装上区分大小写。 'image.jpg'上传但'image.JPG'没有上传。

更改

$fileTypes = array('jpg','jpeg','gif','png');

$fileTypes = array('jpg','JPG','jpeg','JPEG','gif','GIF','png','PNG');