0

我有一个 HTML 表单,我在其中输入文本字段,最后将图像文件上传到服务器。(HTML 文件:<input type="file" name="filename"/>)我使用 Ajax 技术和 HTTP POST 请求来执行此任务。

但我无法上传文件,但可以看到数据库中的文本字段值。我正在尝试使用 getimagesize($_FILES['filename']['tmp_name'] 和 move_uploaded_file() 将图像文件上传到文件夹中移动从临时文件夹到特定文件夹。

FirePHP 将警告消息显示为:getimagesize() [function.getimagesize]: Filename cannot be empty in my .php file on line 19

第 19 行包含 getimagesize() 语句。

有人可以让我知道是否可以使用 ajax 技术上传文件?或任何其他更好的方法来做到这一点?

任何帮助是极大的赞赏。

4

1 回答 1

1

我将为您提供处理基于 AJAX 的文件上传的三种基本方法。

1) 伪造基于 AJAX 的文件上传 - 您将在页面上创建一个 iframe(您可以使用 CSS 隐藏它),您可以将表单定位为 POST 到该 iframe。

<form target='upload_target' id="file_upload_form" method="post" enctype="multipart/form-data" action="upload.php">
    <input name="file" id="file" size="27" type="file" /><br />
    <input type="submit" name="action" value="Upload" /><br />
    <iframe id="upload_target" name="upload_target" src="" style="width:0;height:0;border:0px solid #fff;display: none;"></iframe>
</form> 

2.) FILE API:如果您的浏览器支持它,您可以使用复杂的 FILE API 来执行我称之为纯 AJAX 文件上传的操作 - https://developer.mozilla.org/en/using_files_from_web_applications

3)您可以使用现有的 JQuery 插件,例如Ajax File UploadMultiple File Upload。请在 JQuery 站点上查找更多此类信息,评估跨浏览器的兼容性和使用情况。

于 2012-06-30T16:04:11.440 回答