是否可以在不提交表单的情况下将图像上传到服务器?

时间:2009-11-06 10:15:10

标签: php javascript html ajax

我的表单中有一个文件字段。

我希望用户能够选择图像,按OK,然后不提交表单,以较小的调整大小的方式预览图像。如果一切都令用户满意,那么点击提交,图像以及表格都会提交......

你们这些优秀的专业人士基本上会这样做吗?

由于

5 个答案:

答案 0 :(得分:5)

您需要至少提交一份表单才能上传文件并进行显示。您可以通过using an iframe模拟Ajax上传。

答案 1 :(得分:0)

您可能需要查看以下内容:

http://www.atwebresults.com/php_ajax_image_upload/

答案 2 :(得分:0)

我认为最好的方法是:

  1. 用户按下OK按钮,在后台进行AJAX请求以提交表单,该表单将在临时位置上传图像,而无需用户知道。该请求将返回临时文件位置。
  2. 然后您可以向用户显示已调整大小的图像,如果满意,他们可以选择提交表单并上传原始图像。
  3. Here's an article which also might help you out

答案 3 :(得分:0)

当您上传图片一次,没有必要再次上传图片时,您也可以将副本保留在服务器上,只要您有一些方法可以将图片重新绑定到表单上,或者如果表格从未提交,则将其删除。

清理上传的图片是您无论如何都必须解决的问题。一旦你上传了图像,服务器将不得不保留它,因为浏览器必须在第二个请求中请求图像才能显示它。

我会这样做:

  • 为图像添加单独的表单,确保它包含一些id字段,以便您可以将它们组合在一起。
  • 让图像表单自动使用AJAX作为文件字段onchange事件的一部分提交。
  • 当AJAX调用成功时,在页面中添加一个img元素以显示上传的图像。
  • 单独提交表格的其余部分。

清理您不想要的上传图片(比如用户添加几张图片,然后关闭浏览器而不提交主表单),这是一个单独的问题,您如何处理它将取决于什么你正在开发的那种应用程序。

答案 4 :(得分:0)

您可以使用此标记。

基本上,您将上传字段设为iframe。当用户上传图片时,iframe会重新加载,而不是整个页面,同时在服务器端进行调整大小。