【问题标题】:Php form retaining input about file upload if captcha fails如果验证码失败,PHP 表单会保留有关文件上传的输入
【发布时间】:2012-12-18 04:11:55
【问题描述】:

如果出现验证码或无效输入,我想知道如何保留以 php 形式上传照片的信息。除上传路径外,所有其他字段都保留其输入,即人员输入“C:\Users\inc\Desktop\3.png”,如果在表单提交期间发生任何一种情况,路径将丢失 (...php5#error)

<div class="photo">
  <li class='field_block' id='field_35_div'>
    <div class='col_label'>
      <label class='form_field'>Photo 1</label>
      <label class='form_required' >&nbsp;</label>
    </div>
    <div class='col_field'>
      <input type="file" name="field_35"  id="field_35" value="" class='text_box1' onchange="fmgHandler.check_upload(this);">
      <div id='field_35_tip' class='instruction'></div>
    </div>

我尝试添加回声,但这不起作用。

【问题讨论】:

  • 在提交值和检查字段时,如果输入无效,是否将 POST 中的默认值放入表单字段中?
  • 如果我理解正确,没有。在访问者填写之前,字段都是空白的。我遇到问题的唯一字段是上传......

标签: php captcha image-uploading


【解决方案1】:

不能预先填充文件字段。而且您可能不希望用户每次都必须一次又一次地上传文件,因为这可能需要很长时间。

将文件保存在服务器上的某个位置,并在会话中或隐藏的输入字段中记住它是哪个文件。在文件选择器旁边显示类似 “文件上传” 的内容。如果用户选择上传另一个文件,覆盖之前上传的文件,否则使用之前上传的文件。

【讨论】:

  • 对不起,不要听从你的建议。正如您所说,我不希望用户每次都必须上传文件,特别是如果他们使用验证码出错。问题是保存输入,即 C:\Users\inc\Desktop\3.png" 并在发生错误时放回上传字段,因此他们确实需要上传 - 再次选择图像。
  • 不,您不想将“C:\Users\inc\Desktop\3.png”放回文件上传字段。 a)这是不可能的,b)让我们假设它是一个 50 MB 的文件,第一次上传需要 10 分钟。您不希望您的用户不得不再次这样做。此外,您已经在服务器上拥有该文件。将其保存在服务器上(就像表单提交成功一样),然后告诉用户“好的,我有你的文件,现在我只需要你正确填写表单的其余部分。”
  • 谢谢。我是新手,任何输入都是有帮助的。我试了一下表格,选择了图像,将必填字段留空。收到错误信息,填写此字段,填写完成,再次提交。未上传的文件,只需输入文本即可。不知道如何处理。如果您有任何建议,将不胜感激
猜你喜欢
  • 2017-05-02
  • 2012-08-22
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 2015-11-07
  • 2015-10-31
  • 1970-01-01
相关资源
最近更新 更多