10/10/2018, 11:13
dùng codeigniter & swfupload để upload file
dùng codeigniter & swfupload để upload file.
mình đả kết hợp nhưng với lệnh moveuploaded của php thì được nó upload ok, nhưng khi thử dùng thư viện upload của codeigniter thì không hoạt động. Ai có kinh nghiệm thì chỉ mình với ngồi cả ngày không tìm ra nguyên nhân, đả test dùng cái thư viện upload codeigniter + html <input type="file"....> thì không vấn đề gì up được.
mình đả kết hợp nhưng với lệnh moveuploaded của php thì được nó upload ok, nhưng khi thử dùng thư viện upload của codeigniter thì không hoạt động. Ai có kinh nghiệm thì chỉ mình với ngồi cả ngày không tìm ra nguyên nhân, đả test dùng cái thư viện upload codeigniter + html <input type="file"....> thì không vấn đề gì up được.
Bài liên quan
$filestatus = copy($file_temp,$file_path."/".$file_name);
Những kinh nghiệm khi mình dùng flash để upload:
+ Không truy xuất dc cookie và session (vì flash mở 1 connection riêng biệt không liên quan đến trình duyệt) => nếu upload dưới quyền login thì rất khó khăn. Tuy nhiên không phải ko có cách khắc phục.
+ Flash nhìn có vẻ upload nhiều file 1 lúc. Nhưng thực ra nó upload từng file một. Có nghĩ trang php đón nhận khi flash upload file lên chỉ thấy dc 1 file trong mỗi lần chạy. Như vậy là nếu flash upload lên 5 file đồng nghĩa file php tiếp nhận post lên 5 lần liên tục.
mình dùng Application Demo
file html
...
upload_url: "<?=base_url()?>index.php/test/upload",
post_params: {"PHPSESSID": "<?php echo session_id(); ?>"},
file_post_name : "Filedata",
....
...
function upload(){
if (isset($_POST***91;"PHPSESSID"***93;)) {
session_id($_POST***91;"PHPSESSID"***93;);
}
session_start();
$config***91;'upload_path'***93; = 'uploads/';
$config***91;'allowed_types'***93; = 'gif|jpg|jpe|jpeg|png';
$config***91;'max_size'***93; = '2000';
$config***91;'remove_spaces'***93; = TRUE;
$config***91;'encrypt_name'***93; = TRUE;
$this->load->library('upload', $config);
$this->upload->do_upload('Filedata');
echo $this->upload->display_errors();
...
còn thay đoạn mã
$uploadfile = basename($_FILES***91;"Filedata"***93;***91;"name"***93;);
move_uploaded_file($_FILES***91;"Filedata"***93;***91;"tmp_name"***93;,$uploadfile);
Nói chung rất vất vả.
---SWFUpload Instance Info---
Version: 2.2.0 2009-03-25
Movie Name: SWFUpload_0
Settings:
upload_url: http://localhost/web/index.php/test/upload
flash_url: http://localhost/web/js/swfupload.swf?preventswfcaching=979397830842
use_query_string: false
requeue_on_error: false
http_success:
assume_success_timeout: 0
file_post_name: Filedata
post_params: ***91;object Object***93;
file_types: *.jpg;*.gif
file_types_description: JPG Images
file_size_limit: 2 MB
file_upload_limit: 0
file_queue_limit: 0
debug: true
prevent_swf_caching: true
button_placeholder_id: spanButtonPlaceholder
button_placeholder: Not Set
button_image_url: http://localhost/web/images/SmallSpyGlassWithTransperancy_17x18.png
button_width: 180
button_height: 18
button_text: <span class="button">Select Images <span class="buttonSmall">(2 MB Max)</span></span>
button_text_style: .button { font-family: Helvetica, Arial, sans-serif; font-size: 12pt; } .buttonSmall { font-size: 10pt; }
button_text_top_padding: 0
button_text_left_padding: 18
button_action: -110
button_disabled: false
custom_settings: ***91;object Object***93;
Event Handlers:
swfupload_loaded_handler assigned: false
file_dialog_start_handler assigned: false
file_queued_handler assigned: false
file_queue_error_handler assigned: true
upload_start_handler assigned: false
upload_progress_handler assigned: true
upload_error_handler assigned: true
upload_success_handler assigned: true
upload_complete_handler assigned: true
debug_handler assigned: true
SWF DEBUG: SWFUpload Init Complete
SWF DEBUG:
SWF DEBUG: ----- SWF DEBUG OUTPUT ----
SWF DEBUG: Build Number: SWFUPLOAD 2.2.0
SWF DEBUG: movieName: SWFUpload_0
SWF DEBUG: Upload URL: http://localhost/web/index.php/test/upload
SWF DEBUG: File Types String: *.jpg;*.gif
SWF DEBUG: Parsed File Types: jpg,gif
SWF DEBUG: HTTP Success: 0
SWF DEBUG: File Types Description: JPG Images (*.jpg;*.gif)
SWF DEBUG: File Size Limit: 2097152 bytes
SWF DEBUG: File Upload Limit: 0
SWF DEBUG: File Queue Limit: 0
SWF DEBUG: Post Params:
SWF DEBUG: PHPSESSID=451338aa05dde52b47fa45865064a64e
SWF DEBUG: ----- END SWF DEBUG OUTPUT ----
SWF DEBUG:
Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)
SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.jpg;*.gif
SWF DEBUG: Select Handler: Received the files selected from the dialog. Processing the file list...
SWF DEBUG: Event: fileQueued : File ID: SWFUpload_0_0
SWF DEBUG: Event: fileDialogComplete : Finished processing selected files. Files selected: 1. Files Queued: 1
SWF DEBUG: StartUpload: First file in queue
SWF DEBUG: Event: uploadStart : File ID: SWFUpload_0_0
SWF DEBUG: Global Post Item: PHPSESSID=451338aa05dde52b47fa45865064a64e
SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to http://localhost/web/index.php/test/upload for File ID: SWFUpload_0_0
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_0
SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_0_0. Bytes: 34475. Total: 34475
SWF DEBUG: Event: uploadSuccess: File ID: SWFUpload_0_0 Response Received: true Data: <p>The filetype you are attempting to upload is not allowed.</p>
SWF DEBUG: Event: uploadComplete : Upload cycle complete.
[=========> Bổ sung bài viết <=========]
khi dùng lệnh
...
print_r($_FILES***91;'Filedata'***93;);
...
Array(
***91;name***93;=>9.jpg
***91;type***93;=>application/octet-stream
***91;tmp_name***93;=>D:\\xampp\tmp\php15.tmp
***91;eror***93;=>0
***91;size***93;=>77648
)
[=========> Bổ sung bài viết <=========]
mình lên codeigniter forum học hỏi và cũng đã chạy được rồi.