【问题标题】:Option to save file or not in database as blob ajax php将文件或不作为blob ajax php保存在数据库中的选项
【发布时间】:2015-05-06 16:18:00
【问题描述】:

我成功地将数据库中的文件保存为从 ajax 请求到 php 文件的 blob。 我的ajax是这样的

var file = $('#fileuploader')[0].files[0];
        var formData = new FormData();
        formData.append('file', file);
}
$.ajax({
            url: '../include/Addnewstudent.php',
            type: 'POST',
            dataType: "json",
            data: formData,
            processData: false, // tell jQuery not to process the data
            contentType: false, // tell jQuery not to set contentType
            success: function(data) {
                console.log(data);
               // window.location.reload(true);
            }, error: function(data) {
                alert("Error!"); // Optional
                //window.location.reload(true);
            }
        });

在我的 PHP 中有

    $fileName = $_FILES['file']['name'];
    $fileType = $_FILES['file']['type'];
    $fileSize = $_FILES['file']['size'];
    $fileError = $_FILES['file']['error'];

我在哪里检查文件

if ($fileError == UPLOAD_ERR_OK) {}

我的问题很简单,我怎样才能让它在我不想放文件时没问题。目前,当我没有在 input(type file) 中放任何东西时,我总是在 $fileName = $_FILES['file']['name'];file 未定义,因此我不能将 if 条件设为 if($fileSize = $_FILES['file']['size'] > 0) 或/并且我不能将 input(type file) 留空,因为我肯定会得到 undefined index for file。我怎样才能将input(type file) 留空并且不会收到错误undefined index : file。任何想法都值得赞赏。

GOAL

在数据库中保存或不保存文件的灵活性

【问题讨论】:

  • 你确定你的 if 语法是真的吗?
  • 是的,先生,我知道语法是正确的,因为只要文件不为空,我就可以保存文件。我的目标是能够灵活地不保存文件

标签: php mysql ajax file blob


【解决方案1】:

你必须检查$_FILES['file']是否存在。

if (isset($_FILES['file'])) {
    // process file
}

【讨论】:

  • 我应该使用这个而不是if($fileSize = $_FILES['file']['size'] > 0) 先生,这是您想说的吗?
  • 我添加了示例,请查看 @HogRider 。如果它的“父”不存在,基本上你不能询问子数组。另外,您可以使用 print_r($_FILES); 之类的函数显示数组结构,这样您就可以看到那里有什么,没有什么。
  • 我的代码有问题,我认为它运行正常,因为当我检查数据库时它没有错误,即使我放了一个文件,我也无法上传任何文件大小 0 [BLOB - 0 B ]。它没有上传任何设置if(isset($_files['file']))没用
【解决方案2】:

根据 Keo 的回答,我使用它并想出了这个

if (!empty($_FILES)) {

现在我可以根据我的要求保存和不保存。我实现了上传而不是上传的目标,具体取决于我的需要

【讨论】:

  • 请注意,如果您发送多个文件,则必须检查if (!empty($_FILES) && isset($_FILES['file']))
  • 我知道我会尝试检查这个我没有想过要尝试多次上传谢谢你的想法然后你的答案仍然是这里大局的一部分
猜你喜欢
  • 2015-06-19
  • 2018-11-12
  • 1970-01-01
  • 2017-08-21
  • 2019-09-15
  • 2012-04-28
  • 2019-02-16
  • 2016-11-04
  • 1970-01-01
相关资源
最近更新 更多