2014-06-18 29 views
1

我正在使用Jquery EasyUI,并且在使用此代码时遇到了麻烦。我有一个表单来向DB输入一个文件,并且表单有一个我想要允许附件的input type = file。但是,当提交表单时,$ _FILES对象没有任何内容到DB和声明的路径。如何使用Jquery EasyUI将我的文件上传到数据库mysql?

我希望有人能帮我解决这个麻烦的代码。 谢谢

这里是我的听力代码:


<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> 

这里是我的代码运行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";}    
?> 
+4

首先,你应该放弃mysql命令来支持[mysqli或PDO](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php),因为mysql已被弃用。其次,在不设置大小限制的情况下上传文件听起来对我来说不是一个好主意。 –

+0

显示你的jQuery代码。 – Darren

回答

0

我打赌是你无法上传文件 一些原因。他尝试下面的代码:

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"],因此您只会将其文件名保存在数据库中,而不是文件本身。

第三:就像我的意见,使用的mysqli/PDO中陈述,并且对于你的理智的缘故,创建一个文件限制与

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

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

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

+0

我试图改变代码,但没有任何解决方案<?php 包括“../inc/inc.koneksi.php”; $ file_att = $ _ FILES [“file_att”] [“name”]; $ target =“file_att/$ file_att”; $ temp = $ _ FILES [“file_att”] [“tmp_name”]; ('NULL','$ file_att')“);这个函数返回的是一个字符串,这个字符串可以是一个字符串,而不是一个字符串。 if(move_uploaded_file($ temp,$ target)){ \t echo“File uploaded”; \t} else { echo“Error!”; } ?> – user3746910

+0

当您尝试上传文件时,它会显示“File uploaded”或“Error”? –

+0

它说“错误!” – user3746910

相关问题