สอบถามเรื่อง จะสร้างเว็ปเพื่อ Upload/Download ข้อมูลครับ
คือผมต้องการ ทำเว็ปขึ้นมาเว็ปนึง โดยที่เว็ปนี้จะเป็นเว็ปเหมือนเว็ปฝากไฟล์
ให้ผู้ใช้เข้ามา Upload/Download ได้อะครับ
คือมีข้อแม้ว่า ต้องมี Database เข้ามาเกี่ยวข้อง
คือตอนนี้ผมทำได้ถึงขั้นตอน Upload แล้วครับ กดอัพแล้วไฟล์เข้าฐานข้อมูลแล้ว
** แต่ไม่สามารถ Download ไฟล์นั้นมาได้ครับ
**** 1 ส่วน Table Database
CREATE TABLE upload (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
type VARCHAR(30) NOT NULL,
size INT NOT NULL,
content MEDIUMBLOB NOT NULL,
PRIMARY KEY(id)
);
****2 ส่วน upload.php
<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile">
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
include 'config.php';
include 'opendb.php';
$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed');
include 'closedb.php';
echo "<br>File $fileName uploaded<br>";
}
?>
**** ส่วน 3 download.php
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
include 'library/config.php';
include 'library/opendb.php';
$query = "SELECT id, name FROM upload";
$result = mysql_query($query) or die('Error, query failed');
if(mysql_num_rows($result) == 0)
{
echo "Database is empty <br>";
}
else
{
while(list($id, $name) = mysql_fetch_array($result))
{
?>
<a href="download.php?id=<?php=$id;?>"><?php=$name;?></a> <br>
<?php
}
}
include 'library/closedb.php';
?>
</body>
</html>
<?php
if(isset($_GET['id']))
{
// if id is set then get the file with the id from database
include 'config.php';
include 'opendb.php';
$id = $_GET['id'];
$query = "SELECT name, type, size, content " .
"FROM upload WHERE id = '$id'";
$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
echo $content;
include 'closedb.php';
exit;
}
?>
รบกวนช่วยเหลือทีนะครับ ตอนนี้อัพโหลดไฟล์ได้แล้ว เหลือแต่ ดาวน์โหลดไฟล์
Tag : PHP, MySQL, HTML/CSS
Date :
2014-11-05 22:15:29
By :
xgabpyz
View :
1178
Reply :
8
Date :
2014-11-05 22:16:53
By :
xgabpyz
ตอนนี้ upload ไฟล์ลงฐานได้ละนะคับ
เหลือแค่ download ไฟล์มา ถึงเสร็จครับ
Date :
2014-11-05 22:28:28
By :
xgabpyz
Code (PHP)
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$code.'.jpg"');
header("Pragma: no-cache");
header("Content-Type:image/jpeg\n");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary\n");
header("Content-length: ".$l. "\n");
Date :
2014-11-05 22:35:20
By :
Chaidhanan
ยังไม่ได้เลยครับ ทำไงดี ทำไมถึงไม่ยอมดาวโหลดTT
Date :
2014-11-06 03:27:46
By :
xgabpyz
รบกวนผู้รู้ช่วยทีนะครับบ
Date :
2014-11-06 07:35:53
By :
xgabpyz
ตาม คห.3 ก็น่าจะได้แล้วนะครับ
Date :
2014-11-06 08:39:53
By :
arm8957
list($name, $type, $size, $content) = mysql_fetch_array($result);
แก้เป็น
list($name, $type, $size, $content) = mysql_fetch_row($result);
ปล. ไม่เคยใช้ list กับ fetch_array นะครับ เคยใช้แต่กับ fetch_row
fetch_array มันให้ array เป็น 2 เท่า คือมีทั้ง keyname และ index เลยไม่แน่ใจว่ามันจะลง ตรง กับ list ที่ทำ
ไม่ได้ว่าผิดนะครับ แค่ไม่เคยใช้
ส่วนใน คห 3 เป็นรูปแบบ header สำหรับ download ครับ เอาไปใส่ แทน header ของเก่า แต่ปรับ ตัวแปร ให้ถูกต้องเอาเองนะครับ
Date :
2014-11-06 11:27:31
By :
Chaidhanan
Load balance : Server 02