【问题标题】:What do I need to upload a file to a form using php?使用php将文件上传到表单需要什么?
【发布时间】:2019-08-08 21:03:36
【问题描述】:

我正在创建一个工作申请表,用户在其中添加他的简历并将其附加到电子邮件中,对于小于 1 MB 大小的文件,一切正常,如果单击提交时更多,那么服务器会花费很多时间给我一个服务器超时错误。

这是html:

      <div class="form-group">
        <label for="personalCV">CV</label>
        <input
         name="personalCV"
         type="file"
         class="form-control"
         id="personalCV"
         placeholder="Attach CV"
         style="height: auto;"

         value="<?php if (isset($personalCV)){echo $personalCV;} ?>"
         required>
         <span>File Shouldn't exceed 2MB, and must be of formats .doc, .docx, .pdf</span>

      </div>

这是php:

  if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    //assign variables//
    $firstName = filter_var($_POST['firstName'] , FILTER_SANITIZE_STRING);
    $lastName = filter_var($_POST['lastName'] , FILTER_SANITIZE_STRING);
    $email = filter_var($_POST['userEmail'] , FILTER_SANITIZE_EMAIL);
    $phoneNum = filter_var($_POST['phoneNum'] , FILTER_SANITIZE_NUMBER_INT);
    $position = $jobTitle;
    $message = filter_var($_POST['message'] , FILTER_SANITIZE_STRING);
    $path = 'upload/' . $_FILES["personalCV"]["name"];
    move_uploaded_file($_FILES["personalCV"]["tmp_name"], $path);

我想问题是当我点击表单提交按钮时文件开始上传,这需要一些时间超过服务器超时,有没有一种方法让用户等待文件首先上传(也许使用进度条),然后在上传用户点击提交表单并发送到电子邮件后,问题仍然存在。

【问题讨论】:

  • 文件上传时不应出现服务器超时。超时仅在连接空闲时发生。
  • 您的脚本是否需要很长时间来处理文件?它应该只使用move_uploaded_file() 将文件保存在某处,然后离线处理。
  • 1 MB 很小,应该在一秒钟内上传,确定这是问题
  • 我用我的代码更新了帖子,我正在使用 move_uploaded_file() 将它保存在我的项目内的上传文件夹中,但仍然需要太多时间,然后给我这个错误:致命错误xampp 中超过 30 秒的最大执行时间
  • @tim 如果文件小于 1MB,它可以正常工作1.5 MB

标签: php html file upload


【解决方案1】:

PHP 有几个配置选项来限制脚本消耗的资源。默认情况下,PHP 设置为允许上传大小为 2MB 或更小的文件。

尝试在 php.ini 中增加以下值,例如:

memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M

【讨论】:

  • 我已经这样做了,我可以发送电子邮件,但只能在我的本地主机上,有没有办法在我点击提交按钮之前上传文件
猜你喜欢
  • 2017-06-06
  • 2022-06-11
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2012-06-21
相关资源
最近更新 更多