【问题标题】:Upload to a PHP Server, using Ajax ( XMLHttp POST)使用 Ajax ( XMLHttp POST) 上传到 PHP 服务器
【发布时间】:2012-01-07 19:14:51
【问题描述】:

现在我正在使用以下方法将文件上传到 PHP

<form enctype="multipart/form-data" action="http://sserver.com/fileupload.php" method="POST">

<input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
<input type="hidden" name="filename" value="file_uploaded.gif" />
<input type="hidden" name="username" value="foobar"/>
 Please choose a file:
 <input name="uploaded" type="file" /><br />
 <input type="submit" value="Upload" />
 </form> 

我在php中阅读了$_POST$_FILE来完成这样的上传。

$target = $_SERVER['DOCUMENT_ROOT']."/test/upload/"; 
 $target = $target . basename( $_FILES['uploaded']['name']) ; 
 echo $target;
 $ok=1; 

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
 {
 echo "The file ". basename( $_FILES['uploaded']['name']). " has been uploaded";
 } 
 else {
 echo "Sorry, there was a problem uploading your file.";
 }

我的问题是,我能否将上述代码 (HTML) 更改为 Ajax XMLHttpRequest 而无需更改 PHP

【问题讨论】:

    标签: php ajax upload xmlhttprequest


    【解决方案1】:

    您不能仅通过 AJAX 将文件发送到服务器。这是因为 Javascript(在浏览器中运行时)无法访问主机的文件系统。

    有一些方法可以使用 iframe 制作 AJAX 样式的上传框,在上传期间不会重新加载整个页面,但这本身并不是一项简单的任务。 jQuery 提供了几个库来简化此操作。

    编辑 正如 ThiefMaster 正确指出的那样,HTML5 提供了更巧妙地执行此操作的机制。

    【讨论】:

    • 您可以在最近的浏览器中通过 AJAX 上传文件。用户仍然需要选择文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2012-05-07
    • 2016-08-12
    • 2020-06-28
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多