我有一个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技术上传文件?或者其他更好的方法来执行此操作?
非常感谢任何帮助。
答案 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 Upload和Multiple File Upload。请从JQuery站点查找更多此类内容,评估跨浏览器兼容性和使用情况。