日期:2014-05-16  浏览次数:20525 次

在调试一个上传文件并保存在数据库里的小程序,始终出现问题,向这里的大神请教!
其实这个功能应该很简单,我从网上看到一段程序,自己弄下来调试调试,但出现意想不到的错误,请大神指教啊。

html前端代码:

<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>


php后端代码:

<?php 
if ($_FILES ['file'] != "none" && $_FILES ['file'] != "") 
{
$time_limit = 60;
set_time_limit ( $time_limit );

$file_type = $_FILES ['file'] ['type'];
$file_name = $_FILES ['file'] ['name'];
$file_size = $_FILES ['file'] ['size'];
$fp = fopen ( $_FILES ['file'] ['tmp_name'], "rb" );

if (! $fp)
{
die ( "file open error" );
}

$file_data = file_get_contents($_FILES["file"]['tmp_name']);
//$file_data = fread($fp, $file_size ) ;
fclose ( $fp );
 $conn = mysqli_connect ( "localhost", "root", "root" );
    if (! $conn)
    {
die ( "error : mysql connect failed" );
    }
    mysqli_select_db($conn,"onlytest" );
    $sql = "insert into onlytest.file (contents,type,name,size) values ('$file_data','$file_type','$file_name','$file_size')";
    $result = mysqli_query ($conn, $sql);
    //$id = mysqli_insert_id ($conn);
    //echo $id;
    mysqli_close ( $conn );
    set_time_limit ( 30 ); 
    if ($result)
     echo "succeed to upload the files ";
    else
     echo "failed!";
   

else 
{
echo "You haven't uploaded any files!";
}
?>


数据库为onlytest,表格名为file,几个关键词为id, contents,type,name,size,设置如下:

------解决方案--------------------
错误信息是什么?
------解决方案--------------------
你的配置最大允许上传的多大的?
------解决方案--------------------
可以打印出sql语句是什么呢?
------解决方案--------------------
过滤下吧。 把$file_data加一个mysql_escape_string函数