【问题标题】:Is it possible to reload a form after an input type="file" changes?输入类型=“文件”更改后是否可以重新加载表单?
【发布时间】:2009-11-09 14:22:22
【问题描述】:

“文件输入”更改后是否可以重新加载表单?

我有一个表单,用户可以在其中选择要上传的图像。我还有一个 php 脚本,它显示调整大小的图像。 我只是想知道是否可以重新加载文件输入的表单OnChange然后调用上传图片的php代码,以便用户可以预览它? php 文件是否必须与 php 文件中的文件相同?或者我可以使用 javascript 调用另一个 php 文件仅用于图像上传吗?

注意:用户将能够上传多张图片...

请尽可能多地指导我朝着正确的方向前进...

更新: 没有ajax...没有它可以做到吗?如果页面重新加载对我来说没问题,但这次是图像......可以做到吗?

谢谢

【问题讨论】:

    标签: php javascript html


    【解决方案1】:

    这当然是可能的,就像所有编程一样,在大多数情况下,如果您认为这是可能的。

    据我所知,您正在查看一个将通过 AJAX 更新上传结果的表单。您将需要查看像 jQuery 这样的 javascript 框架来完成此操作,并且您基本上将上传图像/调整其大小,并将其显示给用户,而无需重新加载页面。

    表单中的数据将使用从您的 PHP 'image resizer' 返回的 ajax 调用进行更新

    编辑 可能有帮助的 ajax 图片上传示例:

    1. http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
    2. http://pixeline.be/experiments/jqUploader/test.php

    【讨论】:

    • 我认为这可以在没有 ajax 的情况下完成......如果页面重新加载没有问题,但是里面有图片......我认为 return false 应该这样做......
    【解决方案2】:

    这里有两个问题。

    1) 多次上传,因此每次上传的预览都需要在表格中。用户点击submitsend,浏览器会将其发送到服务器。要在后台执行此操作,您需要找到一个 php 脚本来帮助您异步执行此操作。 我发现有用的是:http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml

    2) 在 iframe 响应中,您可以传回缩略图的 url。这可能是每个文件的 id。最好的办法是创建一个调用 php 脚本的图像标记,该脚本将直接以缩略图的形式返回图像。

    <img src="/imageview.php?id=3&mode=thumbnail" />

    这样您不必保存缩略图,但用户将能够立即看到它,因为您使用新 url 更新 src 属性。

    【讨论】:

      【解决方案3】:

      当您提交表单时,整个页面会重新加载。解决此问题的唯一方法是将上传表单放在 iframe 中。不提交表单就不能上传图片,也不能上传图片的缩略图,你必须上传整个图片,除非你使用flash、silverlight或java。

      【讨论】:

        【解决方案4】:
        <input type="file" name="…" onchange="this.form.submit();">
        

        您需要聪明地跟踪哪些图像已通过给定的表单会话加载,并将对它们的引用存储在隐藏的输入中。

        【讨论】:

          猜你喜欢
          • 2014-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-03
          • 2012-09-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多