2011-12-10 55 views
1

我只是想让用户选择一个文件,它会自动将其下载到我的服务器。我不需要更多功能。什么是最简单和最可靠的(也许你用它?)插件来做到这一点?试过https://github.com/valums/file-uploader,但无法让它工作。ajax(jQuery)的最简单版本只能上传一个文件

+0

这是单独使用,还是将它与CMS一样使用Drupal/Joomla/Wordpress,或像Symfony/CakePHP /等框架?可能有推荐的解决方案可以更好地使用您已经使用的工具。 – ghoti

回答

0
从网页

如:upload.html

<html> 
<head> 
<script type="text/javascript"> 
    function uploadFile(){ 
     var xmlhttp; 
     if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     var formElement = document.getElementById("upload"); 
     var formData= new FormData(formElement); 
     xmlhttp.open("post","upload.php",false); 
     xmlhttp.send(formData); 
     var counter = 0; 
     while (xmlhttp.readyState != 4){ 
      counter = counter + 1; 
     } 
     var errorCondition = xmlhttp.responseText; 
     if(errorCondition == "success"){ 
      alert("File uploaded successfully"); 
     } 
     else{ 
      alert("Error: "+errorCondition); 
     } 
    } 
</script> 

</head> 
<body> 

<form id="upload" action="upload_file.php" method="post" 
enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file" /> 
<br /> 
<input type="button" name="submit" value="Submit" onclick="uploadFile();" /> 
</form> 

</body> 
</html> 

调用PHP像这样:上传。 .php

<?php 
if ($_FILES["file"]["error"] > 0) 
    { 
    echo ($_FILES["file"]["error"]); 
    } 
else 
    { 
    if (file_exists("upload/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . $_FILES["file"]["name"]); 
     echo "success"; 
     } 
    } 
?> 
+0

@downvoter你会不会发表评论? –

+1

我没有降低你的评价,但问题是要求AJAX解决方案,而你的解决方案指向了同步请求(重新加载页面),所以我认为这就是你为什么-1的原因。 –

+0

更新为使用ajax,以某种方式错过了该问题。 – vdbuilder