|
|
|
สอบถามปัญหา download file word จากฐานข้อมูล mysql ไม่แสดงรายละเอียดเอกสารที่ถูกต้อง |
|
|
|
|
|
|
|
ผมได้เขียน script php เพื่อ downloads file word จากฐานข้อมูล mysql ซึ่งได้มาจากการupload file ประเภท DOC เมื่อต้องการ download file ประเภท .DOC มาใช้งาน เมือเปิดดูไฟลฺจากโปรแกรม MS-Word 2007 จะแสดงชื่อไฟล์ในเอกสารเอกสาร แทนที่จะเป็นเป็นเนื้อหารายละเอียด รบรวนให้คำแนะนำในการแก้ไข Script ด้วยครับ โดยมรายละเอียด ดังนี้
1.การUploads ไฟล์ คือ Report_addfile.php ซึ่งรับค่า id มา
Code (PHP)
<?php
session_start();
//if($_SESSION['Status'] == "ADMIN"){
//include("header.admin.inc.php");
//}else{
//include("header.user.inc.php");
//}
?>
<?
include("Selectarear.php");
if ($level=='01'){
// $sql11 = "select * from nuke_rloads_hserv where sunit='T'";
$sql= "select * from nuke_rload_namehc";
}else {
// $sql11 = "select * from nuke_rloads_hserv where ampher='$am_name' AND sunit='T'";
$sql= "select * from nuke_rload_namehc where ampur='$am_name' ";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>เพิ่มข้อมูลทะเบียนสมาชิก ชอสภ.ภูเก็ต</title>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
<STYLE type=text/css>
A:link { color: #0000cc; text-decoration:none}
A:visited {color: #0000cc; text-decoration: none}
A:hover {color: red; text-decoration: none}
</STYLE>
<style type="text/css">
<!--
small { font-family: Arial, Helvetica, sans-serif; font-size: 8pt; }
input, textarea { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; }
b { font-family: Arial, Helvetica, sans-serif; font-size: 12pt; }
big { font-family: Arial, Helvetica, sans-serif; font-size: 16pt; }
strong { font-family: Arial, Helvetica, sans-serif; font-size: 11pt; font-weight : extra-bold; }
font, td { font-family: Arial, Helvetica, sans-serif; font-size: 11pt; }
BODY { font-size: 11pt; font-family: Arial, Helvetica, sans-serif; }
-->
</style>
<?PHP
//$Sdate='2012-02-01';
//$Edate='2012-02-04';
function diff_to_day($Sdate, $Edate){
//การนับวันห่างกันกี่วัน เพราะฉนั้นจะไม่นับวันเริ่มต้น
return round(abs(strtotime($Sdate)-strtotime($Edate))/86400);
//ถ้าต้องการนับร่วมวันแรกด้วย ให้ใช้อันล่างนี้แทน ปิดการใช้ด้านบน
//return round(abs(strtotime($Sdate)-strtotime($Edate))/86400)+1;
}
?>
<?php
function Newdate($convD) {
$GGyear=substr($convD,6,4)-543;
$GGmonth=substr($convD,3,2);
$GGdate=substr($convD,0,2);
$Buffdate=$GGyear."-".$GGmonth."-".$GGdate;
return $Buffdate;
}
?>
<script type="text/javascript" src="mootools.v1.11.js"></script>
<script type="text/javascript" src="DatePicker_Bud.js"></script>
<link rel="stylesheet" href="DatePicker.css" />
<script type="text/javascript">
// The following should be put in your external js file,
// with the rest of your ondomready actions.
window.addEvent('domready', function(){
$$('input.DatePicker').each( function(el){
new DatePicker(el);
});
});
</script>
<script language="JavaScript" type="text/javascript">
<!--
function checkform ( form )
{
if (form.upfile.value == "") {
alert( "โปรดกรอก เลือไฟล์ข้อมูล" );
form.upfile.focus();
return false ;
}
if (form.nsend.value == "") {
alert( "โปรดกรอก เลือกผู้ส่งรายงาน" );
form.nsend.focus();
return false ;
}
if (form.typereport.value == "") {
alert( "โปรดกรอก เลือกประเภทรายงาน" );
form.typereport.focus();
return false ;
}
if (form.ngetdate.value == "") {
alert( "โปรดกรอก วันที่ส่งรายงาน" );
form.ngetdate.focus();
return false ;
}
return true ;
}
//-->
</script>
<style type="text/css">
<!--
.style2 {font-family: "Microsoft Sans Serif"}
.style15 {color: #0000FF; font-family: "ms Sans Serif"; }
.style16 {color: #0000FF}
-->
</style>
</head>
<body>
<p>
<div align="center" class="style16"><span class="style2">ส่งข้อมูลรายงานการสอบสวนโรคของสถานบริการ</span> <br />
<span class="style2">ศูนย์ระบาดวิทยา จังหวัดภูเก็ต</span></div>
<p><center>
<?php
include "connect.php";
$id = $_GET['id'];
$query = "select * from nuke_rload_dreport where id='$id'";
$result = mysql_query($query);
$dbarr = mysql_fetch_array($result) ;
$drecord=$dbarr['daterecord'];
?>
</p>
<form action="" method="post" enctype="multipart/form-data" name="Fr_uploads" id="Fr_uploads"onSubmit="return checkform(this);">
<table width="591" border="1" align="center">
<tr>
<td width="162"><div align="right">รหัสCase</div></td>
<td width="413"><div align="left"><span class="style15"><?php echo "$dbarr[vep_code]"; ?></span></div></td>
<?
$iid=$dbarr[id];
?>
</tr>
<tr>
<td><div align="right">HN</div></td>
<td><div align="left"><span class="style15"><?php echo "$dbarr[hn]"; ?></span></div></td>
</tr>
<tr>
<td><div align="right">โรค</div></td>
<td><div align="left">
<?php
$sd=$dbarr[disease];
include("connect.php");
$sql1 = "select * from nuke_rload_code_dis where code506='$sd'";
$query1 = mysql_query($sql1) or die("error=$sql1");
$data1 = mysql_fetch_array($query1);
$ttname = $data1['tname'];
?>
<span class="style15"><?php echo $ttname; ?></span></div>
<div align="left"></div></td>
</tr>
<tr>
<td><div align="right"><font size="2">ชื่อ</font>-สกุล</div></td>
<td><div align="left"><span class="style15"><?php echo "$dbarr[prename]"; ?></span><span class="style15"><?php echo "$dbarr[fname]"; ?></span><span class="style15"> <?php echo "$dbarr[lname]"; ?></span></div></td>
</tr>
<tr>
<td><div align="right">ที่อยู่</div></td>
<td><div align="left"><span class="style15"><?php echo "$dbarr[addr]"; ?></span><span class="style15"> หมู่ <?php echo "$dbarr[moo]"; ?></span><span class="style15"> ต. <?php echo "$dbarr[tambol]"; ?> </span><span class="style15">อ.<?php echo "$dbarr[ampur]"; ?> จ. </span><span class="style15"><?php echo "$dbarr[province]"; ?></span></div></td>
</tr>
<tr>
<td><div align="right"><font size="2">พื้นที่ควบคุมโรค</font></div></td>
<td><div align="left"><span class="style15">
<?php
$ar=$dbarr[area];
include("connect.php");
$sql1 = "select * from nuke_rloads_hserv where rcode='$ar'";
$query1 = mysql_query($sql1) or die("error=$sql1");
$data1 = mysql_fetch_array($query1);
$nameh = $data1['hname'];
?>
<?php echo $nameh; ?></span></div></td>
</tr>
<tr>
<td><div align="right"><span class="style17 style1">เลือกไฟล์ข้อมูล</span></div></td>
<td><div align="left">
<input type="file" name="upfile" />
</div></td>
</tr>
<tr>
<td><div align="right"><span class="style17 style1">ผู้ส่งรายงาน</span></div></td>
<td><div align="left">
<select name="nsend" id="nsend">
<option value="">เลือกชื่อผู้ส่ง</option>
<?PHP
include("connect.php");
// $sql = "select * from nuke_rload_namehc";
$query = mysql_query($sql) or die("error=$sql");
$num = mysql_num_rows($query);
for($i=1;$i<=$num;$i++)
{
$row = mysql_fetch_array($query);
?>
<option value="<?PHP echo $row['namehc']?>"> <?PHP echo $row['namehc']?></option>
<?PHP
}
?>
</select>
</div></td>
</tr>
<tr>
<td><div align="right"><font size="2">ประเภทรายงาน</font></div></td>
<td><div align="left">
<select name="typereport" id="typereport">
<option value="">เลือกประเภทรายงาน</option>
<option value="รายงานเบื้องต้น">รายงานเบื้องต้น</option>
<option value="รายงานผู้บริหาร">รายงานผู้บริหาร</option>
<option value="รายงานฉบับสมบูรณ์">รายงานฉบับสมบูรณ์</option>
<option value="รายงานสอบสวนเฉพาะราย">รายงานสอบสวนเฉพาะราย</option>
</select>
</div></td>
</tr>
<tr>
<td><div align="right"><font size="2">วันที่ส่งรายงาน</font></div></td>
<td><div align="left">
<input id="ngetdate" name="ngetdate" type="text" class="DatePicker" />
</div></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><div align="left"><b>
<input value="<< ส่งข้อมูล >>" type="submit" name="submit_bt" />
<input value="<< RESET >>" type="reset" name="reset_bt" />
<input type="hidden" name="ch" value="ok" />
</b></div></td>
</tr>
</table>
<div align="center"></div>
</form>
<p> </p>
<?PHP
$Tdatereport=Newdate($_POST['ngetdate']);
$Edate=$Tdatereport;
$Sdate=$drecord;
//$ThDate=Newdate("ngetdate");
$nday=diff_to_day($Sdate, $Edate);
if ($nday<=3){
$intime='T';
}else{
$intime='F';
}
$ncck='ส่ง รง.แล้ว';
$iid='15';
if($_POST['ch']=="ok")
{
$_FILES["upfile"]["tmp_name"];
$file = $_FILES["upfile"]["tmp_name"];
$type =($_FILES["upfile"]["type"] );
$name = $_FILES["upfile"]["name"];
$size = $_FILES["upfile"]["size"];
$content= $_FILES["upfile"]["name"];
// copy($_FILES["fileUpload"]["tmp_name"],"images/".$nameimages);
$mailfile=$_FILES['upfile']['name'];
$Str_file = end(explode(".",$_FILES['upfile']['name'])); // แยกชื่อไฟล์ด้วย "." ค่าที่ได้จะเป็น Array ครับ
// ชื่อไฟล์ที่จะบันทึกลง Database
//$name1 = "EP2MAIN_".$hserv."_".date("d-m-Y");
// $name = "รง.การสอบสวนโรค".$Str_file;
$filename1 = "รง.การสอบสวนโรค" .$ttname;
$filename ="$filename1.".$Str_file;
//$filename =$name;
include "connect.php";
$Am ='T8303-56-';
$ttrep = "$Am".$iid;
$sql1= "update nuke_rload_dreport set trep='$ttrep',namereport ='$nsend',datereport='$Tdatereport', name = '$filename',typereport ='$typereport',type = '$type',size = '$size',content ='$content',ckk ='$ncck',intime='$intime' where id = $id;";
mysql_query($sql1);
//if($result) {
if(!$qry){
echo "<script>alert('ส่งข้อมูลเรียบร้อยแล้ว ');location.href='Report_form_report.php';</script>";
}else{
echo "<script>alert('ไม่สามารถส่งข้อมูลได้ กรุณาลองใหม่อีกครั้ง);location.href='Report_form_report.php';</script>";
}
}
?>
<?php
include("footer.inc.php");
?>
</html>
//-------------------------------------------------------------------------
2.dowhload file จากไฟล์ download-disease.php
<?php
session_start();
include("connect.php");
$id = $_GET['id'];
$sql = "SELECT * FROM nuke_rload_dreport WHERE id = $id;";
$result = mysql_query($sql);
$type = mysql_result($result, 0, "type");
$pat_img = "^(image)";
$pat_swf = "(flash)$";
///ถ้าไม่ใช่ชนิดรูปภาพ ให้เข้าสู่การดาวน์โหลด
if(!eregi($pat_img, $type) && !eregi($pat_swf, $type)) {
$name = mysql_result($result, 0, "name");
$size = mysql_result($result, 0, "size");
$type = mysql_result($result, 0, "type");
$content = mysql_result($result, 0, "content");
header("Content-Type: $type");
header("Content-Length: $size");
header("Content-Disposition: attachment; filename=$name");
echo $content;
$w_id = $_GET['id'];
$w_receive = '1';
$w_dreceive = date("Y-m-d");
$staft_name = $_SESSION["Name"];
$sql = "update nuke_rload_dreport set receive = '$w_receive',staft_date='$w_dreceive', staft_name='$staft_name' where id = $w_id;";
mysql_query($sql);
// mysql_close();
exit();
}
?>
ผลการการ runscript
แสดงผลชื่อไฟล์ ซึ่งผิดพลาด
ควรจะแสดงผล ดังนี้
รบกวนผู้รู้ช่วยให้คำแนะนำวิธีแก้ปัญหา และแก้ไขscript ที่เกี่ยวข้องด้วยครับ
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2013-04-17 07:51:40
|
|
|
|
|
Date :
2013-04-16 20:20:57 |
By :
somboon |
View :
1741 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รอคำตอบจากผู้รู้ครับ
|
ประวัติการแก้ไข 2013-04-17 09:35:16
|
|
|
|
Date :
2013-04-17 09:29:09 |
By :
somboon |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พออัพโหลดไปแล้ว ลองเปิดไฟล์นั้นดูครับโดยไม่ต้องโหลดมา เข้าไปเปิดจากโพลเดอร์เลยครับ
|
|
|
|
|
Date :
2013-04-17 09:38:41 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เก็บลงฐานข้อมูล Mysql เข้าไปดูในฐานข้อมูล เก็บในฟิลด์ name ครับ
|
|
|
|
|
Date :
2013-04-17 09:57:13 |
By :
somboon |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รอผู้รู้ท่านต่อไป
|
|
|
|
|
Date :
2013-04-17 10:06:04 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ
|
|
|
|
|
Date :
2013-04-17 10:09:04 |
By :
somboon |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|