|
|
|
ใช้ uploadfly ครับ จะเสริมให้บันทึกลงฐานข้อมูลด้วย ผมแทรกไปแล้ว ชื่อรูปเข้า แต่inputอื่นๆในform ไม่เข้าครับ |
|
|
|
|
|
|
|
ผมมี input เสริมมาอีกอันคือ troop เก็บค่าว่าอัพโหลดรูปลง กองร้อยไหน แต่มันก็ไม่ได้ครับ ทั้งๆที่ก็อยู่ในฟอร์มเดียวกัน
แต่ที่น่าสงเกตคือ input type'file' หน้าอัพโหลดเป็นชื่อ file_upload แต่ในหน้าบันทึกลงเซิฟจะใช้เป็น $_FILES['Filedata']['name'] ครับ แล้วมันก็บันทึกได้ด้วยนะ
โค้ดหน้าฟอร์มครับ (โดยย่อ)
Code (PHP)
<script type="text/javascript">
$(document).ready(function() {
load();
function load(){ //function load()
$.get(
'show.php', //แสดงผลรูปที่เพิ่งอัพโหลดไปโดยผ่านไฟล์ show.php
{},
function(data){
$("#show").html(data); //ให้ไปแสดงผลที่ div id show
}
);
}
$('#file_upload').uploadify({
'auto' : true, //เปิดใช้การอัพโหลดแบบอัติโนมัติ
'swf' : 'images/uploadify.swf', //โฟเดอร์ที่เก็บไฟล์ปุ่มอัพโหลด
'uploader' : 'uploadify.php', //เมื่อ submit แล้วให้ action ไปที่ไฟล์ไหน
'fileSizeLimit' : '5024KB',//อัพโหลดได้ครั้งละไม่เกิน 1024kb
'fileTypeExts' : '*.gif; *.jpg; *.png', //กำหนดชนิดของไฟล์ที่สามารถอัพโหลดได้
'multi' : true,//เปิดใช้งานการอัพโหลดแบบหลายไฟล์ในครั้งเดียว
'queueSizeLimit' : 20, //อัพโหลดได้ครั้งละ 5 ไฟล์
'onUploadComplete' : function() { //เมื่ออัพโหลดเสร็จแล้วให้เรียกใช้งาน function load()
load();
}
});
});
</script>
<form>
<div id="queue"></div>
อัพโหลดภาพลงกองร้อยที่ <select name="troop" id="troop">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input id="file_upload" name="file_upload" type="file" multiple="true">
</form>
โค้ดหน้าบันทึก
Code (PHP)
<?php require_once('../Connections/conn.php'); ?>
<?php
/*
Uploadify
Copyright (c) 2012 Reactive Apps, Ronnie Garcia
Released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
// Define a destination
$targetFolder = 'uploads'; // Relative to the root
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $targetFolder;
$targetFile = $targetFolder . '/' . $_FILES['Filedata']['name'];
$troop = $_POST['troop'];
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
$strSQL = "INSERT INTO tb_gallery ";
$strSQL .="(pic,date,troop) ";
$strSQL .="VALUES ";
$strSQL .="('".$_FILES['Filedata']['name']."','".date("Y-m-d H:i:s")."','".$_POST['troop']."') ";
$objQuery = mysql_query($strSQL);
if($objQuery)
{
echo "Save Done.";
}
else
{
echo "Error Save [".$strSQL."]";
}
echo '1';
} else {
echo 'Invalid file type.';
}
}
?>
Tag : PHP, MySQL, HTML/CSS, CakePHP
|
|
|
|
|
|
Date :
2014-07-31 10:12:03 |
By :
benzsara |
View :
701 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พลิกแพลงเอาครับ เป็นจาก POST เป็น GET ส่งไปครับ บรรทัดที่ 16
Code (PHP)
'uploader' : 'uploadify.php', เปลี่ยนเป็น 'uploader' : 'uploadify.php?troop=ไอดีกองร้อย',
แล้วไปรับ $_GET['troop']; ที่หน้าอัพโหลด PHP เอานะครับ
|
|
|
|
|
Date :
2014-07-31 10:54:34 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไอ = ไอดีกองร้อย ผมจะเอาค่ามันขึ้นไปได้ยังไงอ่ะครับ
'uploader' : 'uploadify.php?troop=$_POST[troop]
ค่าที่เข้า db คืิอ $_POST... อ่ะครับ
ขอโทดนะครับ คือไม่รู้จริง ๆ
|
|
|
|
|
Date :
2014-07-31 11:09:57 |
By :
benzsara |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก selectlist ของคุณไงครับ บรรทัดที่ 30 เพียงใส่ event onclick แล้วให้ไปสร้างตัวแปร session หรือ ง่ายกว่านั้น ถ้าวิธีแรกยากไป
ก็ก่อนจะมาที่หน้าเลือกไฟล์เพื่ออัพโหลด ก็ให้ user เลือกก่อนว่าจะอัพโหลดขึ้นกองร้อยไหน แล้วส่งมาเป็น GET หรือ session
แล้วจับไปยัดตามที่ผมบอกอะครับ งงหรือเปล่าครับ?
|
|
|
|
|
Date :
2014-07-31 11:36:22 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่ันแหละครับ ผมไม่งงครับ แต่ว่ามันทำไม่ได้อ่ะ
ใส่แบบนี้หรือเปล่าครับ
'uploader' : 'uploadify.php?troop=$_POST[troop]
ค่าของ $_POST[troop] มันไม่มาด้วยอ่ะดิครับ
|
|
|
|
|
Date :
2014-07-31 16:06:53 |
By :
benzsara |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|