|
|
|
อัพโหลดไฟล์ภาษาไทย โดยเข้ารหัส ด้วยฟังก์ชัน md5() และให้ถอดรหัส ก่อนดาวน์โหลด นี่ ผมไม่เข้าใจสักเลย งง ช่วยหน่อยครับ |
|
|
|
|
|
|
|
ประมาณว่า ผมมีไฟล์งานที่เป็นภาษาไทย พออัพโหลดเสร็จแล้ว ไฟล์กลับเป็ยอย่างนี้ เธเธ—เธเธฑเธ”เธขเนเธญ เน€เธ”เธดเธก.docx เลยมีคนแนะนำให้เข้ารหหัส ด้วยฟังก์ชัน md5() คือ ผมนั้นไม่ได้เรียนแล้วพอศึกษาเองเกิด งง อยากจะถามว่ามันเข้ารหัสยังไงครับ
Code (PHP)
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style>
body {
background: url('images/bg.jpg') top center ;
background-attachment:fixed;
background-size: 100%;
background-origin: content;
background-repeat: no-repeat;
}
</style>
<?php
include "class.resizepic.php";
$db = new mysqli("localhost", "root", "123456", "dbboard");
$db->set_charset('utf8');
if(isset($_POST['Submit'] ))
{
$num_file = count($_FILES['file']['name']);
$select = false;
$count = 0;
for($i = 0; $i < $num_file ; $i++)
{
if($_FILES['file']['error'][$i] != 0)
{
$count++;
continue;
}
if($_FILES['file']['name'][$i] != "")
{
$Filename = $_FILES['file']['name'][$i];
$originalFilename = $_FILES['file']['name'][$i];
$type = $_FILES['file']['type'][$i];
// .gif, .png, .jpg, .zip, .docx, .pdf, .doc, .swf, .rar
if ( $type == "image/gif") {$pic_type = 'GIF'; }
else if ($type == "image/png") {$pic_type = 'PNG'; }
else if (($type == "image/jpg") or ($type=="image/jpeg") or ($type == "image/pjpeg")) {$pic_type = 'JPG'; }
else if ($type == "application/octet-stream") {$pic_type = false;}
else if ($type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {$pic_type = false;}
else if ($type == "application/pdf") {$pic_type = false;}
else if ($type == "application/msword") {$pic_type = false;}
else if ($type == "application/x-shockwave-flash") {$pic_type = false;}
else if ($type == "application/octet-stream") {$pic_type = false;}
if(move_uploaded_file($_FILES['file']['tmp_name'][$i], "fileUpload/".$Filename)){
if($pic_type){
$original_image = "fileUpload/". $Filename ;
$pic_size = getimagesize($original_image);
$desired_width = 250 ;
$per_div = abs($desired_width - $pic_size[0]) * 100 / $pic_size[0];
$desired_height = $pic_size[0] > $desired_width ? $pic_size[1] - floor( $pic_size[1] * $per_div / 100) : $pic_size[1] + floor( $pic_size[1] * $per_div / 100);
$image = new hft_image($original_image);
$image->resize($desired_width, $desired_height, '0');
$image->output_resized("fileUpload/".$Filename, "JPG");
}
$sql = $db->query("INSERT INTO files (original_file_name , file_name) VALUES ('{$originalFilename}' , '{$Filename}') ");
if($sql)
{
echo "<H3><CENTER><br><br><br><br><br><img src='images/thumbsup.png' width='256px' height='161px'></CENTER></H3>";
echo "<META HTTP-EQUIV=refresh CONTENT=\"0; page_admin.php\">";
$upload_true = true;
}else{
echo "<H3>ERROR:Can not Upload</H3>";
}
}
}else{
$count++;
}
}
}
?>
ขอความคิดเห็นหน่อยครับ คือ จะเอา md5() ใส่ตรงไหนดีแล้วแก้ยังไงให้มัน insert ครับ
Tag : PHP
|
|
|
|
|
|
Date :
2015-10-25 21:34:17 |
By :
NuItMaster |
View :
1632 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การเข้ารหัสด้วย md5 มันจะได้อักษรมา 32 ตัวครับ ไม่ได้ทำให้เป็นภาษาไทย เพราะมันทำไม่ได้ (ผมไม่เคยทำได้ อาจจะทำได้ก็ได้)
เมื่อเก็บเป็นภาษาไทยไม่ได้ ก็เลยใช้วิธีแปลงให้เป็นชื่ออื่น การแปลงเป็นชื่ออื่น ก็อาจะมีการซ้ำกันได้
เลยใช้ การ encrypt ด้วย md5 ซึ่งจะทำให้โอกาสชื่อไฟล์ซ้ำน้อยลงไป แต่ก็มีโอกาสซ้ำได้เหมือนกัน
อย่าไปคิดมากเลยครับ รอติดตั้ง php 6 ก่อนก็แล้วกันครับ เขาว่ากันว่า ใช้ save เป็น utf-16 ได้
เพราะ ชื่อไฟล์ เขาเก็บด้วย utf-16 ครับ ยังหาตัวโปรแกรมที่จัดการด้านนี้ ไม่ได้( อาจจะมีแต่หาไม่เจอ)
ปล.แก้ไขนิดหน่อย มีพวกบ้าคอยจับผิดคำพูดอยู่ผิดนิดผิดหน่อยเป็นไม่ได้
|
ประวัติการแก้ไข 2015-10-26 13:54:56
|
|
|
|
Date :
2015-10-25 22:06:21 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อะ หวังว่าจะได้แล้วนะครับ ผมแนะนำว่าให้คุณทำความเข้าแต่ละบรรทัดเลย ว่าบรรทัดนั้นๆ ทำงานอะไร จำเป็นหรือไม่ ทำความเข้าใจในที่นี้คือหาข้อมูลจนกว่าจะเข้าใจ ถ้ายังไมาเข้าใจ ก็อ่านจนกว่าจะเข้าใจ แล้วมันจะติดตัวคุณไปตลอด มีผู้มีพระคุณของผมเคยบอกว่า "งานคือครู งานและอุปสรรคจะสอนเราเอง"
Code (PHP)
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style>
body {
background: url('images/bg.jpg') top center ;
background-attachment:fixed;
background-size: 100%;
background-origin: content;
background-repeat: no-repeat;
}
</style>
<?php
include "class.resizepic.php";
$db = new mysqli("localhost", "root", "123456", "dbboard");
$db->set_charset('utf8');
if(isset($_POST['Submit'] ))
{
$num_file = count($_FILES['file']['name']);
$select = false;
$count = 0;
for($i = 0; $i < $num_file ; $i++)
{
if($_FILES['file']['error'][$i] != 0)
{
$count++;
continue;
}
if($_FILES['file']['name'][$i] != "")
{
#ฟังก์ชั่นนี้ใช้สำหรับ Rename ชื่อไฟล์ที่ทำการอัพโหลดใหม่ รับค่า $_FILES['file']['name']
#ผลลัพธิ์จะได้ เช่น รับค่า ทดสอบ.docx ฟังก์ชั่นจะส่งค่ามาเป็น Acdeq12345678.docx เป็นต้น
function getNewName($fileName){
$fileName = explode('.',$fileName);
$i = count($fileName)-1;
$fileType = strtolower($fileName[$i]);
$rand = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789'),0,5);
$result = $rand.time().'.'.$fileType;
return $result;
}
$Filename = getNewName($_FILES['file']['name'][$i]);
$originalFilename = $_FILES['file']['name'][$i];
$type = $_FILES['file']['type'][$i];
// .gif, .png, .jpg, .zip, .docx, .pdf, .doc, .swf, .rar
if ( $type == "image/gif") {$pic_type = 'GIF'; }
else if ($type == "image/png") {$pic_type = 'PNG'; }
else if (($type == "image/jpg") or ($type=="image/jpeg") or ($type == "image/pjpeg")) {$pic_type = 'JPG'; }
else if ($type == "application/octet-stream") {$pic_type = false;}
else if ($type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {$pic_type = false;}
else if ($type == "application/pdf") {$pic_type = false;}
else if ($type == "application/msword") {$pic_type = false;}
else if ($type == "application/x-shockwave-flash") {$pic_type = false;}
else if ($type == "application/octet-stream") {$pic_type = false;}
if(move_uploaded_file($_FILES['file']['tmp_name'][$i], "fileUpload/".$Filename)){
if($pic_type){
$original_image = "fileUpload/". $Filename ;
$pic_size = getimagesize($original_image);
$desired_width = 250 ;
$per_div = abs($desired_width - $pic_size[0]) * 100 / $pic_size[0];
$desired_height = $pic_size[0] > $desired_width ? $pic_size[1] - floor( $pic_size[1] * $per_div / 100) : $pic_size[1] + floor( $pic_size[1] * $per_div / 100);
$image = new hft_image($original_image);
$image->resize($desired_width, $desired_height, '0');
$image->output_resized("fileUpload/".$Filename, "JPG");
}
$sql = $db->query("INSERT INTO files (original_file_name , file_name) VALUES ('{$originalFilename}' , '{$Filename}') ");
if($sql)
{
echo "<H3><CENTER><br><br><br><br><br><img src='images/thumbsup.png' width='256px' height='161px'></CENTER></H3>";
echo "<META HTTP-EQUIV=refresh CONTENT=\"0; page_admin.php\">";
$upload_true = true;
}else{
echo "<H3>ERROR:Can not Upload</H3>";
}
}
}else{
$count++;
}
}
}
?>
|
|
|
|
|
Date :
2015-10-25 22:09:55 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ ผมจะจำคำที่พี่สอน ได้หล่ะครับ
|
|
|
|
|
Date :
2015-10-25 22:54:16 |
By :
NuItMaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากบทความผมก็บอกแล้วว่าไม่รู้หลายเรื่อง ไม่เคยบอกว่ารู้ทุกเรื่อง แล้วคนอย่างคุณรู้ทุกเรื่องไหม
บางอย่างถ้ามันผิดก็บอกให้คนอื่นเขารู้ว่ามันผิด มันลำบากมากใช่ไหม
ต้องมากระแนะกระแหนสร้างศัตรูเพิ่ม แค่ตรงนี้คุณก็ไม่รู้จักอลุ่มอล่วยกับคนอื่นแล้ว
เรียกว่าโตจนเป็นควายแล้ว ยังไม่รู้จักการใช้ชีวิตร่วมกับคนอื่น
ถ้าได้พูดกันต่อหน้า ก็โดนชกปากไปแล้ว นี่เพราะมันเป็นคึย์บอร์ดถึงกล้าพูดแบบนี้ใช่ไหม
ทำตัวให้มันมีประโยชน์แก่ชาวบ้าน คนที่ไม่รู้ก็ไม่รู้อยู่วันยังค่ำ
พอจะรู้บ้างหรือยังว่า ควรตอบยังไง ผมก็ไม่ใช่พหูสูตรที่จะรู้ทุกเรื่อง ถ้าบอกมาเป็นความรู้ จะขอบคุณมากๆ เลย
ปล.และที่แก้ก็บอกว่าแก้ ไม่ได้สร้างภาพ อะไร แค่เพิ่มคำพูดให้มันชัดเจนในความคิด ที่อาจทำให้คนเข้าใจผิดเท่านั้น
|
ประวัติการแก้ไข 2015-10-27 03:02:36
|
|
|
|
Date :
2015-10-27 03:00:24 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
md5 ที่ผมว่าใช้สำหรับในขั้น rename ชื่อไฟล์ที่ไม่ใช่ภาษาอังกฤษและตัวเลขอะครับ
ไม่เกี่ยวกับชื่อซ้ำหรอก อันนั้นต้องเพิ่มอย่างอื่นเข้ามาด้วย
จขกท.ก็เอามาใช้ในการกำหนด $Filename ในขั้นตอนก่อนที่จะสั่ง move_uploaded_file นะครับ ให้มัน rename แล้วเก็บลงตัวแปรก่อนแล้วจึงย้ายไฟล์ที่อัพโหลด
|
|
|
|
|
Date :
2015-10-27 08:37:10 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|