当前位置: 首页 > 知识库问答 >
问题:

PHP上载表单问题

桂高昂
2023-03-14

我有问题上传表单使用php,我曾经创建过这样的页面,但由于某种原因,这似乎是渲染,我希望我只是错过了一些如此简单的东西。Im试图创建和上传表单,以上传Wav、rar、zip和txt文件,并返回其他所有的错误。

如果我尝试上传一个与这些文件无关的文件,它会显示一个错误,但如果我尝试上传一个wav或一个zip文件,它不会工作,我不会得到任何类型的错误报告,但如果我要上传一个.txt文件,它似乎工作良好。

我的html代码是;

           <form action="<?php echo $site_url; ?>upload.php" enctype="multipart/form-data" method="post">
                <input type="hidden" name="upload" id="upload" value="upload" />
  <label for="invoice"><strong>Select Invoice Number</strong></label>

 <select name="invoice" <?php if (array_key_exists('invoice', $add_product_errors)) echo ' class="error"'; ?>>


<?php  while($row = mysqli_fetch_array($r)){ ?>
<option value="<?php echo $row[0] ; ?>" 
<?php if (isset($_POST['invoice']) && ($_POST['invoice'] == $row[0]) ) echo ' selected="selected"';
        echo ">" .$row[0]. "</option>\n"; ?>
        <?php } ?>
</select><?php if (array_key_exists('invoice', $add_product_errors)) echo ' <span class="error">' .$add_product_errors['invoice']. '</span>'; ?>
<label for="track"><strong>Upload File</strong></label>

<input type="hidden" name="MAX_FILE_SIZE" value="5120000" /> 
<input type="file" name="song" id="song" <?php if (array_key_exists('song', $add_product_errors)){ echo " class=\"error\" /> <span class=\"error\">" .$add_product_errors['song']. "</span>"; }else{    echo ' />'; if (isset($_SESSION['song'])){  echo " CURRENTLY '{$_SESSION['song']['file_name']}'"; } } ?>
  <input type="submit" name="upload_files" id="upload_files" value="Upload Files" />
      </form>

和我的php脚本;


if(isset( $_POST['upload'])){
    if(is_uploaded_file($_FILES['song']['tmp_name']) && ($_FILES['song']['error'] == UPLOAD_ERR_OK)){

         $file = $_FILES['song'];
             $size = ROUND($file['size']/1024);
            if($size > 5120000){
              $add_product_errors['song'] = 'The File Size is too Big';
             }// END FILE SIZE


   $allowed_mime = array('audio/wav', 'audio/x-wav', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip', 'text/plain');
             $allowed_extensions = array('.wav', '.zip', '.rar', '.txt');
             $ext = substr($file['name'], -4);


             if((!in_array($file['type'], $allowed_mime))
      || (!in_array($ext, $allowed_extensions))
      ){
       $add_product_errors['song'] = "We Only accept .wav and .zip files please do not send .mp3 files";
       }// END IF WRONG EXT

                if (!array_key_exists('song', $add_product_errors)){

            $dest = "clients/" . $username[0] . "/" . $_POST['invoice'] . "/" . $file['name'];
        if(move_uploaded_file($file['tmp_name'], $dest)){
     //  $_SESSION['image']['new_name'] = $new_name; 
      $_SESSION['song']['file_name'] = $file['name'];
      $add_product['text'] = "

Files has successfully been moved

如果有任何帮助,我将不胜感激谢谢

共有1个答案

封梓
2023-03-14

尝试删除mime类型的检查,然后先看看它给出了什么

 类似资料:
  • 在使用文件上传HTML表单和一些PHP来处理输入时,我感到困惑。在表格中,我为图像选择了两个文件。上载.png文件时,我可以使用$\u文件获取文件大小等信息。但是,当我试图上传一个.jpg文件时,我无法获得比文件名更多的信息,没有大小、类型、临时名称。 当同时上传两个文件时,. png和. jpg,一切都适用于. png文件,但不适用于. jpg。 我错过了什么?在使用带有.jpg文件类型的$\u

  • 我正在为我的项目构建一个ajax/php联系表单,包含以下字段: 姓名(必填)、电子邮件(必填)、主题(必填)和网站(必填) 一切正常,现在唯一的问题是,如果用户没有在主题和或网站字段中键入任何内容,我收到的电子邮件显示这两个字段如下: 主题:(显示空白) 网址:(显示空白) 如果用户没有在我收到的电子邮件中键入任何内容,是否可能根本不显示这两个字段 名称:[用户名] 邮箱:[用户邮箱地址] 我只

  • 嗨,伙计们,我一直与使用超文本标记语言和PHP的网站之一有麻烦 表单似乎没有提交或发送消息。附件是代码请任何帮助将是伟大的。另外,还附上了PHP和javascript作为参考。有时页面也不响应按钮。如果有人能修复代码将是伟大的。

  • 主要内容:PHP 表单处理,form.html 文件代码:,welcome.php 文件代码:,PHP 获取下拉菜单的数据,php_form_select.php 文件代码:,php_form_select_mul.php 文件代码:,单选按钮表单,php_form_radio.php 文件代码:,checkbox 复选框,php_form_select_checkbox.php 文件代码:,表单验证PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入。 PHP 表

  • Web API 2中的文件上载问题 虽然我上传文件与表单后此工作文件,但当我发送相同的信息从Rest客户端像邮递员在谷歌Chrome或张贴文件信息与Android或iOS应用程序Web Api 2代码不检测文件多部分/表格-员额 下面是我的html代码 这NETWebAPI 2代码 这是邮递员的要求 在Fiddler客户端中公开post请求时,我已经看到,当使用html表单post发布时,在多部分

  • 问题内容: 我有一个代码库,当前使用Post上传文件,并具有enctype作为multipart / form- data。现在,我需要包括一些表单项,即一些参数也将随文件上传一起传递。我已经创建了html表单,但是我不能使用request.getParameter,因为它是一个多部分表单。谁能建议我如何将参数与上传文件一起传递。我提供以下代码。请根据我的代码的兼容性建议我如何解决 问题答案: 如