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


File upload and send textbox data using AJAX HTTP POST

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

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

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

第 19 行包含 getimagesize() 语句。

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

任何帮助将不胜感激。

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

1)伪造基于AJAX的文件上传 - 您将在页面上创建一个iframe(您可以使用CSS隐藏),您可以将表单定位到该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 文件上传和多文件上传。请从JQuery站点查找更多此类内容,评估跨浏览器兼容性和使用。