[英]file upload in php to mysql
我試圖將一個簡單的文件從php上傳到mysql,然后再下載回去,但我似乎一直遇到問題,但我不知道。 我嘗試以這種形式上傳的圖片在blob列中創建了一些內容,但在下載寡婦查看器時卻給出了錯誤,並且沒有可用的預覽錯誤
這是表格的代碼
<form enctype="multipart/form-data" method="post" action="upload.php">
Choose your file <input name="file" type="file">
<input type="submit" >
</form>
這是upload.php的代碼
include('connect.php');
$actualname=$_FILES['file']['name'];
$type=$_FILES['file']['type'];
$name = $_FILES['file']['tmp_name'];
$size = $_FILES['file']['size'];
$fresource=fopen($name,'r');
$content=fread($fresource,filesize($name));;
$content=addslashes($content);
fclose($fresource);
$query='INSERT INTO `files` (Name,Content,Type,Size) VALUES ("'.$actualname.'","'.$content.'","'.$type.'","'.$size.'")';
echo $query;
$var=mysql_query($query,$con);
這是download.php的代碼
include('connect.php');
$query='SELECT * FROM `files` WHERE ID="2"';
$res=mysql_query($query,$con);
$var=mysql_fetch_array($res);
header("Content-length: ".$var[4]);
header("Content-type: ".$var[3]);
header("Content-Disposition: attachment; filename=".$var[1]);
echo $var[1];
任何幫助將非常感激
文件表具有相同順序的ID,Name,Content,Type,Size列
不要使用MYSQL_ *
還addlashes()是保護代碼安全的一種糟糕的方法。 由於代碼本身容易受到SQL注入的影響。
我假設你的數據庫是
id name content type size
所以將最后一行更改為
echo stripslashes($var[2]);
以來
0 => id,
1 => name,
2 => content,
並在內容中添加了斜線...所以現在您需要刪除em。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.