2011-10-04 100 views
1

我正在努力与uploadify目前。我遵循了文档,但对于我的生活,我无法将文件上传到文件夹。Uploadify。上传工作,但不保存到文件夹

我在OSX上使用MAMP。上传时,我可以看到上传栏,在Chrome控制台上没有错误。 tmp文件夹是777

的意见/ upload.php的

<!DOCTYPE html> 
<html lang="en"> 
<head> 

<link href="<?php echo base_url() ?>assets/uploadify/uploadify.css" type="text/css" rel="stylesheet"> 

<script type="text/javascript" src="<?php echo base_url() ?>assets/uploadify/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="<?php echo base_url() ?>assets/uploadify/jquery.uploadify.v2.1.4.min.js"></script> 
<script type="text/javascript" src="<?php echo base_url() ?>assets/uploadify/swfobject.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#file_upload').uploadify({ 
      'uploader' : '<?php echo base_url() ?>assets/uploadify/uploadify.swf', 
      'script' : '<?php echo base_url() ?>assets/uploadify/uploadify.php', 
      'cancelImg' : '<?php echo base_url() ?>assets/uploadify/cancel.png', 
      'auto'  : true 
     }); 
    }); 


</script> 
</head> 
<body> 

<input id="file_upload" name="file_upload" type="file"> 
</body> 
</html> 

upload.php的

<?php 
if (!empty($_FILES)) { 
$tempFile = $_FILES['Filedata']['tmp_name']; 
$targetPath = '/Applications/MAMP/htdocs/tmp'; 
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 

    move_uploaded_file($tempFile,$targetFile); 
    echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile); 

} 
+1

您可能需要添加一个'/'到$ targetPath –

+0

像魅力一样工作。谢谢Pekka。 – GV1

+0

没问题。我会将它作为答案添加,然后 –

回答

1

你可能需要一个/添加到$ TARGETPATH:

$targetPath = '/Applications/MAMP/htdocs/tmp/'; 

一般来说,调试这些东西的一种方法是在表单中创建一个正常的文件上传。这样,您可以在上传脚本中执行测试输出并查看它们。一旦所有的东西在服务器端运行,切换回在客户端使用SWFUpload。

+0

工作。这总是最令人头痛的简单解决方案。 – GV1

+1

@ GV1注意:使用用户提供的文件名将文件存储在服务器上存在安全风险,并且可能会发生故障(例如,如果文件名包含文件系统不允许的字符)。使用自生名称更安全(并将用户提供的名称存储在数据库中,如果以后需要) –

+0

感谢关注@Pekka。我实际上使用CodeIgniters文件上传类来加密文件名和限制文件类型。我正在用上面的例子测试Uploadify。 – GV1