2013-11-01 111 views
0

我正在尝试在网站上实现uploadify。Uploadify成功但未上传文件?

它说文件上传,但当我在上传文件夹中看到什么都没有。

我已阅读其他类似的文章,没有运气。

我看过this answer另一个问题:

我有一个Linux机器上类似的问题。事实证明,我的服务器上的PHP配置是cuplrit。 PHP在安全模式下运行。由于我通过FTP上传了Uploadify脚本,所以脚本文件与我的FTP用户详细信息一起存储在文件系统中。由于PHP的临时文件夹属于服务器根目录,因此我的UID不匹配,即临时上传文件归因于root,而尝试移动它的上载脚本属于FTP用户。这使它碎片化。

为了解决这个问题,我将uploadify php脚本的所有权更改为root并从那里运行。

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

这里是文件服务器上的FileZilla截图:

FileZilla Screenshot

编辑

我想上传一个ZIP文件,它说上载成功,但没有上传。但是,我不知道是否有一个错误与我的脚本,因为我不应该被允许上传一个zip文件,因为这条线在PHP脚本:

// 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.'; 
} 
} 
?> 
+0

尝试使用'FTP客户端chmod'上传文件夹( “上传”)到'777'或'755'。 –

+0

您也可以尝试将文件夹的所有者和组更改为您的网络服务器软件的相同所有者和组... FileZilla和其他FTP软件可以向您显示组成您的其他文件/文件夹中正在使用的当前所有者/组环境 –

+0

@SetSailMedia - 感谢您的信息。我试着用FileZilla改变它,但仍然没有文件。我附上了FileZilla在我的问题中显示的屏幕截图。 – L84

回答

2

它看起来好像令牌验证码是问题。如果删除该功能,上传应该通过:)

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

if (!empty($_FILES) && $_POST['token'] == $verifyToken) {线变为:

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

0

看来,$文件类型的情况下,在我的Linux安装PHP敏感。 'image.jpg'上传,但'image.JPG'没有。

变化

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

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