|
|
|
ช่วยตอบผมหน่อยครับ php กับ jquery พอดีผมไปเอาโค๊ดจากเว็บ เป็นการใช้ jquery upload ไฟล์ครั้งเดียว ได้หลายๆ ไฟล์ |
|
|
|
|
|
|
|
พอดีผมไปเอาโค๊ดจากเว็บ http://www.uploadify.com/demo/ มาอ่ะครับ
เป็นการใช้ jquery upload ไฟล์ครั้งเดียว ได้หลายๆ ไฟล์
ตัวโปรแกรม น่าจะเป็นพวก ajax อ่ะครับ มันไม่มีการเปลี่ยนหน้า แค่กดปุ่มลิงค์ คำว่า upload มันก็ส่งค่าทีเดียว ส่งไปทุกไฟล์เลยครับ
เช่นผมเลือกไฟล์ จำนวน 5 ไฟล์ ชื่อ a1.jpg a2.jpg a3.jpg a4.jpg a5.jpg
แล้วกด uplaod มันก็จะส่งไปทีเดียวหมดเลย 5 ไฟล์ (ในหน้าเดิม) และค่าไฟล์จะถูกส่งไปหน้า uploadify.php และ insert ไฟล์เข้าใน field ชื่อ mp3 มีค่าคือ $nf ( code อยู่ด้านล่างครับ)
ผมติดปัญหาตรงที่ว่า แล้วเราจะส่งค่าตัวแปรอื่นๆ ไปกับไฟล์ที่เรา upload ได้ยังไงครับ
เช่นต้องการส่งค่าตัวแปรชื่อ $type ไปด้วย ในแถวเดียวกันกับ field ที่ชื่อ mp3 อ่ะครับ
นี่เป็นตัวส่งค่า ผมตั้งชื่อว่า uptest.php ครับ
นี่ code ครับ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="css/default.css" rel="stylesheet" type="text/css" />
<link href="css/uploadify.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="scripts/swfobject.js"></script>
<script type="text/javascript" src="scripts/jquery.uploadify.v2.1.0.min.js"></script>
</head>
<body>
<form method="post" action="scripts/uploadify.php" enctype="multipart/form-data">
<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf',
'script' : 'scripts/uploadify.php',
'cancelImg' : 'cancel.png',
'folder' : 'mp3',
'queueID' : 'fileQueue',
'auto' : false,
'multi' : true
});
});
</script>
<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />
<table width="227" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="121"><div align="center"><a href="javascript:jQuery('#uploadify').uploadifyUpload()">Uplaod</a></div></td>
<td width="106"><div align="center"><a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">ยกเลิกทั้งหมด </a></div></td>
</tr>
</table>
</form>
</body>
</html>
ตัวรับค่าไฟล์ที่เรา upload ตั้งชื่อว่า uploadify.php
นี้ code ครับ
Code (PHP)
<?
if (!empty($_FILES)) { //ถ้าไฟล์ไม่เท่ากับค่าว่าง
$n = $_FILES['Filedata']['name']; //เก็บชื่อไฟล์ที่ upload มาไว้ในตัวแปร $n
///// ฟังก์ชั่น สุ่ม เพื่อแปลงชื่อไฟล์ //////
function random_password($len)
{
srand((double)microtime()*10000000);
$chars = "0123456789";
$ret_str = "";
$num = strlen($chars);
for($i = 0; $i < $len; $i++)
{
$ret_str.= $chars[rand()%$num];
$ret_str.="";
}
return $ret_str;
}
$passw = random_password(7);
$lfile = strrchr($n,'.');
$lfile = strtolower($lfile);
$now = date("DmY");
///// จบฟังก์ชั่น สุ่ม //////
$nf=$passw.$now.$lfile; // ไฟล์ที่เราแปลงแล้ว เก็บไว้ในตัวแปร $nf
include("config.inc.php");
$in="insert into atc (mp3) values ('$nf')";
$ql=mysql_query($in);
if($ql)
{
echo "OK Query";
}else
{
echo "not query";
}
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) .$nf;
move_uploaded_file($tempFile,$targetFile);
echo "1";
}
?>
Tag : - - - -
|
|
|
|
|
|
Date :
2009-11-27 18:26:14 |
By :
basic111 |
View :
1840 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รอคุณ num ครับ
|
|
|
|
|
Date :
2009-11-27 18:27:49 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมหมายถึง ส่งค่า $type จากหน้า uptest.php นะครับ
$type="view";
$type="graphic";
$type="gen";
เพราะผมจะแยกชนิดไฟล์ที่ upload เข้าไป ในทุกๆ แถวเลยครับ
ตอนดึงข้อมูลออกมาแสดง ผมจะได้แยกเป็นชนิดๆ ได้ถูกเช่น มีภาพ 3 ชนิด คือ ภาพวิว ภาพกราฟฟิค ภาพทั่วไป
ผมก็สร้าง 3 field ชื่อว่า
id mp3 type
1 a1.jpg view
2 a2.jpg view
3 a3.jpg graphic
4 a4.jpg graphic
5 a5.jpg gen
6 a6.jpg gen
7 a7.jpg gen
|
|
|
|
|
Date :
2009-11-27 19:04:06 |
By :
basic111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่เคยใช้นะครับ
ลองอ่าน manual ดู
ลองคิดวิธีดูที่ง่ายที่สุดจะเป็น สร้าง drop downbox มาอันนึงครับ
<select id="gtype"><option>select</option><option value="view">view</option><option value="gen">gen</option></select>
<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf',
'script' : 'scripts/uploadify.php',
'cancelImg' : 'cancel.png',
'folder' : 'mp3',
'queueID' : 'fileQueue',
'auto' : false,
'multi' : true
});
$('#gtype').change(function(){
$('#uploadify').uploadifySettings('scriptData', {'gtype' : $('#gtype').val()});
});
});
</script>
ลองแล้วครับ จะได้รับค่าอยู่ในตัวแปร $_POST['gtype'] ครับ
|
|
|
|
|
Date :
2009-11-27 20:06:13 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โอ้ว..ขอบคุณ คุณ num มากๆๆ เลยครับ
ถ้าไม่ได้คุณ num ผมคงติดไปอีกนานเลยครับ
|
|
|
|
|
Date :
2009-11-27 21:27:38 |
By :
basic111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|