文件上传和使用AJAX HTTP POST发送文本框数据

时间:2012-06-30 14:52:19

标签: php ajax

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

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

FirePHP显示警告消息: getimagesize()[function.getimagesize]:第19行的.php文件中的文件名不能为空

第19行包含getimagesize()语句。

有人可以让我知道是否可以使用ajax技术上传文件?或者其他更好的方法来执行此操作?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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站点查找更多此类内容,评估跨浏览器兼容性和使用情况。