使用flash插件上傳,多是不少人選擇的方式,可是隨之而來的session丟失問題也着實讓人頭疼javascript
swfupload代碼以下:php
<script type="text/javascript" src="<?php echo base_url();?>/static/js/swfupload/swfupload/swfupload.js"></script> <script type="text/javascript" src="<?php echo base_url();?>/static/js/swfupload/js/swfupload.queue.js"></script> <script type="text/javascript" src="<?php echo base_url();?>/static/js/swfupload/js/fileprogress.js"></script> <script type="text/javascript" src="<?php echo base_url();?>/static/js/swfupload/js/handlers.js"></script> <script type="text/javascript"> var swfu; var settings = {} ; window.onload = function() { settings = { flash_url : "<?php echo base_url() ;?>/static/js/swfupload/swfupload/swfupload.swf", upload_url: "<?php echo site_url('admin/file_manager/file/upload_file') ;?>?inajax=1", post_params: {"session":"<?php echo session_id() ;?>"}, file_size_limit : "1000 MB", file_types : "*.*", file_types_description : "All Files", file_upload_limit : 100, file_queue_limit : 0, custom_settings : { progressTarget : "fsUploadProgress", cancelButtonId : "btnCancel" }, debug: true, // Button settings //button_image_url: "/js/swfupload/images/TestImageNoText_65x29.png", button_image_url:'<?php echo base_url() ;?>/static/js/swfupload/images/bg.png', button_width: "63", button_height: "20", button_placeholder_id: "spanButtonPlaceHolder", button_text: '<a class="theFont">批量上傳</a>', button_text_style: ".theFont{ font-size: 12; color:black ; cursor:pointer;text-align:center}", button_text_left_padding: 0, button_text_top_padding: 0, // The event handler functions are defined in handlers.js file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : success_data, upload_complete_handler : uploadComplete, queue_complete_handler : queueComplete // Queue plugin event }; swfu = new SWFUpload(settings); }; function uploadComplete(){ //alert(3); } function uploadStart(){ swfu.addPostParam("SubPath",path); } function success_data(file, serverData) { alert(serverData); } </script>
上面的我在post後面加了個參數session=<?php echo sessionid(); ?>java
在php端ajax
if(!empty($_POST['session']) && isset($_POST['session'])){ @session_id($_POST['session']); } @ob_clean() ; @session_start();
l另外還有個問題,他的傳遞參數是window.onload 可是我要獲得某個文本框的值,那就沒辦法了,因此我在後面加了一個函數session
function uploadStart(){}在post提交以前在後面追加參數便可