如何使用 Jquery EasyUI 将文件上传到 DB mysql?

Posted

技术标签:

【中文标题】如何使用 Jquery EasyUI 将文件上传到 DB mysql?【英文标题】:How i can upload my file to DB mysql with Jquery EasyUI? 【发布时间】:2014-08-08 07:25:03 【问题描述】:

我正在使用 Jquery EasyUI,但我在处理这段代码时遇到了问题。我有一个将文件输入到 DB 的表单,并且该表单有一个 input type = file 我想允许一个附件。但是,提交表单时,$_FILES 对象在 DB 和声明的路径中没有任何内容。

希望有人能帮我解决这个问题代码。 谢谢

这是我的收听代码:


<form id="form" method="post" enctype="multipart/form-data">
    <input type="file" name="file_att" id="file_att" size = "30px;" class="easyui-validatebox" required="true"/>
</form>

这是我在提交表单时运行表单的代码:


<?php
    include "../inc/inc.koneksi.php";

    $file_att=$_FILES["file_att"]["name"];
    $target="file_att/$file_att";
    $temp=$_FILES["file_att"]["tmp_name"];


    $query=mysql_query("INSERT INTO t_director(id_direc,file_att) VALUES ('NULL','$file_att')");
    if(!empty($file_att))
        move_uploaded_file("$temp","$target");
        echo "Success Attached";
    
    else echo "Failed";               
?>

【问题讨论】:

首先你应该放弃 mysql 命令以支持mysqli or PDO,因为 mysql 已被弃用。其次,上传文件而不设置大小限制对我来说是个坏主意。 显示你的 jQuery 代码。 【参考方案1】:

我敢打赌,您由于某种原因未能上传文件。试试他下面的代码:

if(move_uploaded_file($temp, $target)) 
    echo "File uploaded";
 else
    echo "Error!";

代替:

move_uploaded_file("$temp","$target");
echo "Success Attached";

如果此输出和错误,请尝试var_dump($_FILES["file_att"]); 获取错误代码。有关错误代码的更多信息可以找到here。

此外,您的文件在移动之前位于$_FILES["file_att"]["tmp_name"],因此您将仅将其文件名保存在数据库中,而不是文件本身。

第三:就像我在 cmets 中所说的那样,使用 mysqli/PDO,并且为了您的理智,创建一个文件限制

<input type="hidden" name="MAX_FILE_SIZE" value="XXX">

其中 XXX 是以字节为单位的值。

编辑:另外,检查您服务器的 post_max_size 和 upload_max_file_size。

【讨论】:

我试图更改代码但没有解决方案 当您尝试上传文件时显示“文件已上传”或“错误”? 如果它说错误,这正是我所说的。由于某种原因无法上传文件。那么 var_dump($_FILES["file_att"]) 输出什么? 它说“NULL 错误!” NULL 表示您将文件发送到错误的 php 文件。您可以在问题中添加您的 jquery 代码吗?

以上是关于如何使用 Jquery EasyUI 将文件上传到 DB mysql?的主要内容,如果未能解决你的问题,请参考以下文章

在EasyUI项目中使用FileBox控件实现文件上传处理

在EasyUI项目中使用FileBox控件实现文件上传处理

jquery 多个 上传文件教程

jquery easyUI怎样实现图片的上传

如何使用jQuery将多个文件上传到java控制器

如何使用 jQuery 或其他 js 框架将字符串作为文件上传