【问题标题】:Why the file upload is not functioning in following form?为什么文件上传无法按以下形式运行?
【发布时间】:2013-09-10 14:03:51
【问题描述】:

我正在为我的网站使用 smarty 和 PHP。以下是我来自 smarty 模板的表单代码。

<form id="manage_reply_enquiry" name="manage_reply_enquiry" method="post" action="{$control_url}modules/enquiries/reply_to_enquiry.php" enctype="multipart/form-data">
        <ul>
          <li>
            <label>{'To Name'|signal_on_error:$error_msg:'contact_name'} :</label>
            <div class="form-element">
              <input type="text" name="contact_full_name" id="contact_full_name" value="{$data.contact_full_name|capitalize}" class="">
            </div>
          </li>
          <li>
            <label>{'To Email'|signal_on_error:$error_msg:'email'} :</label>
            <div class="form-element">
              <input type="text" name="contact_email_id" id="contact_email_id" value="{$data.contact_email_id}" class="">
            </div>
          </li>
          <li>
            <label>{'Reply'|signal_on_error:$error_msg:'reply'} :</label>
            <div class="form-element">
              <textarea name="reply" id="reply" cols="60" rows="12">{$data.reply}</textarea>
            </div>
          </li>
          <li>
            <label>{'Upload File'|signal_on_error:$error_msg:'reply_file_name'} :</label>
            <div class="form-element">
              <p class=""><input type="file" id="reply_file_name" name="reply_file_name" /></p>
              <div class="input-info"> <span class="required">Note* (Image size should be less then 1 mb and alowed format types are CSV, XLS)</span></div>
            </div>
          </li>
          <input type="hidden" name="contact_id" value="{$data.contact_id}" />
          <input type="hidden" name="from_date" value="{$from_date}" />
          <input type="hidden" name="to_date" value="{$to_date}" />
          <input type="hidden" name="op" value="{$op}" />
          <li>
            <label></label>
            <div class="form-element">
              <input type="submit" name="submit" id="submit" class="c-btn" value="Send">
              <input type="button" name="cancel" id="cancel" class="c-btn" value="Cancel" onclick="javascript:window.location.href='{$control_url}modules/enquiries/view_contact_us.php?page={$page}&from_date={$from_date}&to_date={$to_date}'">
            </div>
          </li>                
        </ul>
      </form>

如果我在 reply_to_enquiry.php 文件中打印 Posted 数据,我会得到以下数据:

Array
(
    [contact_full_name] => ABCD
    [contact_email_id] => abcd@gmail.com
    [reply] => How are you now?
    [contact_id] => 59
    [from_date] => 10/09/2000
    [to_date] => 10/09/2013
    [op] => view
    [submit] => Send
)

你能告诉我为什么我不能从表单中获取名为 reply_file_name 的文件控件的值吗?我不明白为什么会这样。任何人都可以在这方面帮助我吗?提前致谢。

【问题讨论】:

  • 你可以看看$_FILES

标签: php forms file-upload input


【解决方案1】:

当您在 PHP 中进行上传时,与上传文件相关的信息在 $_FILES 变量中。

这里是一个最小的上传脚本。 (不要在生产环境中使用)

<?php 

    if(isset($_FILES['reply_file_name'])){
    $target = "some/path/".basename($_FILES['reply_file_name']['name']) ;
    print_r($_FILES);

    if(move_uploaded_file($_FILES['reply_file_name']['tmp_name'],$target)) echo "OK!";//$chmod o+rw some/path

    }


    ?>

【讨论】:

  • 注意:这不会检查错误并且非常不安全,尽管它说明了这一点
  • @DamienPirsy 确定这只是帮助他找到自己的脚本的摘录;)
猜你喜欢
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
相关资源
最近更新 更多