|
|
|
ขอวิธีการส่งไฟล์ผ่าน ajax ครับ ปัจจุบันให้เรียกผ่าน php ตรงๆ |
|
|
|
|
|
|
|
โคด PHP
Code (PHP)
<?php
include_once 'setting.php';
$databaseService = new connectDB();
$conn = $databaseService->getConnection();
$table_name = 'program_list';
$query = "SELECT prog_name, prog_link FROM " . $table_name . " WHERE prog_id = :prog_id LIMIT 0,1";
var_dump($_POST['prog_id']);
$stmt = $conn->prepare($query);
$stmt->bindParam(':prog_id', $_POST['prog_id'], PDO::PARAM_INT);
//var_dump($stmt);
$stmt->execute();
$num = $stmt->rowCount();
if ($num > 0) {
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$prog_name = $row['prog_name'];
$prog_link = $row['prog_link'];
}
var_dump($prog_link);
var_dump($prog_name);
$base_path = $_SERVER['DOCUMENT_ROOT'].'Download/';
define('BASE_PATH', $base_path);
$local_file = BASE_PATH.$prog_link;
$file_extension = pathinfo($local_file, PATHINFO_EXTENSION);
$download_file = $prog_name.'.'.$file_extension;
var_dump($local_file);
// set the download rate limit (=> 20,5 kb/s)
$download_rate = 20.5;
if(file_exists($local_file) && is_file($local_file))
{
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($local_file));
header('Content-Disposition: filename='.$download_file);
flush();
$file = fopen($local_file, "r");
while(!feof($file))
{
// send the current file part to the browser
print fread($file, round($download_rate * 1024));
// flush the content to the browser
flush();
// sleep one second
sleep(1);
}
fclose($file);
} else {
die('Error: The file '.$local_file.' does not exist!');
}
?>
Code (AJAX)
function prog_req(prog_id) {
$.ajax({
type: "POST",
url: "database/file_streaming.php",
data: {prog_id:prog_id},
success:function(response) { console.log(response); }
});
}
Tag : PHP, Ajax, XAMPP
|
|
|
|
|
|
Date :
2019-12-13 10:32:35 |
By :
ciockie |
View :
527 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$('#...').html(data);
ปกติแล้ว ajax&jquery ควร return แค่เฉพาะผลลัพธ์ และไม่ควรมากๆที่จะกลับมาในรูปแบบ php เต็มๆ แค่ process ผิดนนิดเดียว error แล้ว และถ้า return มาเต็มๆแบบนี้ มันไม่ควร
|
|
|
|
|
Date :
2019-12-13 14:33:51 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ajax ที่แสดงนั้นผมเขียนไว้ดูผลที่ได้จาก php เฉยๆครับ ตอนนี้คือหาวิธีที่จะ flush ไฟล์จาก php ข้าม ajax มาครับ พอจะมีตัวอย่างหรือคีย์เวิร์ดสำหรับการค้นคว้าเพิ่มเติมหรือไม่ครับ
|
|
|
|
|
Date :
2019-12-13 15:34:43 |
By :
ciockie |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
download หรือ upload
download ด้วย ajax ไม่ได้ครับ
แต่ upload ได้
download ไม่ได้เพราะ browser ไม่อนุญาต ให้ script save file ลง client
ต้องผ่าน location.href = '????' ซึงใช้ address box
|
|
|
|
|
Date :
2019-12-13 15:52:00 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|