วิธีตรวจเช็ค “The upload path does not appear to be valid” ของ Framework Codeigniter

เขียน PHP ด้วย framework Codeigniter 

มาถึงหน้า upload ก็เขียนตามตัวอย่างแต่พอรันบน linux สามารถอัพโหลดได้ปรกติ  แต่พอลองรันบน server ที่เป็น Windows กับแสดง error 

The upload path does not appear to be valid

ก็ลองหาวิธีแก้ไปมา เจอวิธีการเช็ค Path ที่ใช้ในการอัพโหลด


ลองใช้คำสั่งนี้ ถ้า path บน server มีอยู่จะ return ture 

var_dump(is_dir('/upload/')); 

และหากอยากรู้ path เต็มๆ 

Advertisements
วิธีตรวจเช็ค “The upload path does not appear to be valid” ของ Framework Codeigniter

Codeigniter: Export database to excel file

เริ่มกันเลยนะครับ ก่อนอื่นเลยสำหรับคนที่ใช้ PHP Framework “Codeigniter” สามารถติดตั้ง plugin ได้โดยอ่านรายละเอียดที่นี่ http://codeigniter.com/wiki/Excel_Plugin/ 


วิธีติดตั้งก็ไม่ยากเพี่ยงแค่เราสร้างไฟล์ใหม่ขึ้นมาชื่อ “to_excel_pi.php” ใน path /system/plugins/ 


/system/plugins/to_excel_pi.php





จากนั้นนำโค๊ดด้านล่างไปวางในไฟล์ที่สร้างขึ้นมา หรือที่่ http://codeigniter.com/wiki/Excel_Plugin/

if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’);
/*
* Excel library for Code Igniter applications
* Author: Derek Allard, Dark Horse Consulting, 

http://www.darkhorse.to, April 2006

*/
function to_excel($query$filename=‘exceloutput’){
// just creating the var for field headers to append to below 

     $headers 

    // just creating the var for field data to append to below

     $data 

     $obj =& get_instance();

     $fields $query->field_data();
     if (
$query->num_rows() == 0{
          
echo ‘The table appears to have no data.
;
     
else {
          
foreach ($fields as $field{
             $headers 
.= $field->name “\t”;
          
}

          foreach ($query->result() as $row{
               $line 
;
               foreach(
$row as $value{                                       
                    
if ((!isset($value)) OR ($value == “”)) {
                         $value 
“\t”;
                    
else {
                         $value 
str_replace(‘”‘‘””‘$value);
                         
$value ‘”‘ $value ‘”‘ “\t”;
                    
}
                    $line 
.= $value;
               
}
               $data 
.= trim($line).“\n”;
          
}
     
          $data 
str_replace(“\r”,“”,$data);

header(“Content-type: application/x-msdownload”); 

header(“Content-Disposition: attachment; filename=$filename.xls”);
          echo 
$headers\n$data;
     
}
}
?> 

หลักๆแล้วการทำงานของ plugin นี้ก็จะเอาค่า $result ที่ได้จาก $this->db->get(‘table’); มาแสดงข้อมูลในรูปแบบตาราง จากนั้นกำหนด header ให้กลับหน้า Page โดยการกำหนด Header ต้องประกาศก่อนที่จะส่งข้อมูลไปยัง Client


Header ใช้คือ

header(“Content-type: application/x-msdownload”);

header(“Content-Disposition: attachment; filename=”ชื่อไฟล์.xls”);

 เมื่อทำการติดตั้ง plugin เรียบร้อยต่อไปเราจะมาดูวิธีการใช้งานนะครับ


ใน Controller 
โหลด plugin ที่ต้องการใช้ 

$this->load->plugin(‘to_excel’);

ทำการดึงข้อมูลจากฐานข้อมูล ในที่นี้ข้อใช้ Database Class ของ CI

$query $this->db->get(‘tablename’);

จากนั้นทำการเรียกใช้ plugin โดยส่งค่าที่ได้จากฐานข้อมูลไปให้    
plugin สามารถระบุ parameter ได้สองแบบ

to_excel($query‘filename’);

และใช้ชื่อ default  “exceloutput”

to_excel($query);



Credit :: http://codeigniter.com/wiki/Excel_Plugin/

Codeigniter: Export database to excel file

"The upload path does not appear to be valid" Codeigniter

เขียน PHP ด้วย framework Codeigniter 
มาถึงหน้า upload ก็เขียนตามตัวอย่างแต่พอรันบน linux สามารถอัพโหลดได้ปรกติ  แต่พอลองรันบน server ที่เป็น Windows กับแสดง error 

The upload path does not appear to be valid

ก็ลองหาวิธีแก้ไปมา เจอวิธีการเช็ค Path ที่ใช้ในการอัพโหลด

ลองใช้คำสั่งนี้ ถ้า path บน server มีอยู่จะ return ture 

var_dump(is_dir('/upload/')); 

และหากอยากรู้ path เต็มๆ 

var_dump($_SERVER['SCRIPT_FILENAME']); 


เมื่อใช้คำสั่งแรกแล้วค่าที่ได้กลับมาเป็น TRUE แสดงว่า path ที่ระบบมีอยู่บน server โปรแกรมน่าจะสามารถ upload file ไปไว้บน server ได้แล้ว

หากยังแสดง error “The upload path does not appear to be valid” อีกลองให้ท่านตรวจเช็คค่าต่างๆที่ได้ config ให้กับ library upload ว่าถูกต้องหรือไม่ เช่นตัวอย่างนี้

$config['upload_path''uploads';
$config['allowed_types''gif|jpg|png';
$config['max_size''2048';
$config['max_width''1024';
$config['max_height''768';

$this->load->library('upload'$config);
$this->upload->initialize($config); 

อย่าลืมนะครับว่า folder ที่จะ upload ไฟล์ต้องอนุญาติให้เขียนไฟล์ด้วยนะครับ


Credit :: codeigniter.com

"The upload path does not appear to be valid" Codeigniter

วิธีการเปิดใช้งาน Mod_rewrite บน Web Server

มารู้จักกับ mod_rewrite

ในการเปิดใช้งาน mod_rewrite สำหรับ Ubuntu เพียงแค่ พิมพ์คำสั่งใน Terminal จากนั่นสั่งรัน

sudo a2enmod rewrite

เท่านี้ก็จะสามารถใช้งานโหมด rewrite ของ apache ได้แล้ว
ส่วนในการ config ค่าต่างๆจะกำหนดใน file ที่มีชื่อว่า .htaccess


สำหรับ Codeigniter จะมีตัวอย่างอยู่ใน user_guide ในหัวข้อ

CodeIgniter URLs

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

วิธีการเปิดใช้งาน Mod_rewrite บน Web Server