RSS Feed!

貓上腦

我近期

Twitter Updates

    follow me on Twitter

    賣豆”卜”

    Archive for the ‘PHP’ Category

    SWFUpload

    Saturday, September 27th, 2008

    SWFUpload 是一個可以同時上傳檔個檔案的flash+javascript 的小程式, 就需要 HTML 及 ServerSide 做一些設定, 以下用 PHP 作示範:

    HTML

    在<head> … </head>內 加入 以下的 javascript 內容

    <script type="text/javascript">
    // 上傳之前執行的, 需要return true 代表可以繼續上傳
    var uploadStart = function(obj){
    return true;
    }

    // 執行於上傳出現錯誤
    var uploadError = function(obj, code, message){
    document.getElementById('message').innerHTML+='Upload Failure:'+code+':
    \n'+message+'
    \n';
    }

    // 當上傳檔案中執行
    var uploadProgress = function(obj, completed, total){
    document.getElementById('message').innerHTML='Uploading...'+Math.floor(completed/total)+'%
    \n';
    }

    // 當上傳一個檔案後執行
    var uploadSuccess = function(obj, message){
    document.getElementById('message').innerHTML='Upload Successful:
    \n'+message+'
    \n';
    }

    var fileQueued = function (obj){
    //當有檔案被選擇後, 便立即上傳檔案
    swfu.startUpload();
    }

    var swfu;
    window.onload = function() {
    var settings = {
    file_post_name : "Filedata", // 上傳名稱, 等同<input type="file" name="Filedata" />
    flash_url : “../swfupload/swfupload_f9.swf”,
    upload_url: “../simpledemo/upload.php”, // 這一個檔案是負責接收SWFUpload選擇好的檔案
    post_params: {“PHPSESSID” : “”,”other_data”:”123″}, // 如果你需要處理識別使用者, 可加入PHPSESSID 的資料; 另外可加其他資料到 post_params
    file_size_limit : “100 MB”, // 最大的檔案size
    file_types : “*.*”, // 如需要指定文件格式如jpeg , 可輸入 “*.jpg”
    file_types_description : “All Files”,
    file_upload_limit : 100, // 同一頁最多上傳的數量(只計成功上傳)
    file_queue_limit : 0,
    custom_settings : {
    progressTarget : “fsUploadProgress”, //
    cancelButtonId : “btnCancel”  //取消按鈕位置
    },
    debug: false,

    // 設定 Handler
    file_queued_handler: fileQueued,
    upload_progress_handler : uploadProgress,
    upload_start_handler : uploadStart,
    upload_error_handler : uploadError,
    upload_success_handler : uploadSuccess,
    };

    swfu = new SWFUpload(settings);
    };
    </script>

    在<body> … </body>內 加入 以下的內容

    <fieldset id="fsUploadProgress">
    <legend>Upload Queue</legend>

    </fieldset>

    <div id="message"></div>

    <div>

    <input type="button" value="Upload file (Max 100 MB)" onclick="swfu.selectFiles()" />

    <input id="btnCancel" type="button" value="Cancel All Uploads" onclick="swfu.cancelQueue();" disabled="disabled" />

    </div>


    在<body> … </body>內 加入 以下的內容

    PHP

    <?php
    // 已接收檔案的位置
    $tmp_name = $_FILES['Filedata']['tmp_name'];

    // 原本檔案名字
    $orginial_name = $_FILES['Filedata']['name'];

    // 將檔案放到目標位置
    if(move_uploaded_file($tmp_path,’/path/to/your/place/’.$orginial_name)){
    print “$orginial_name uploaded successful”;
    }else{
    print “$orginial_name uploaded failure.”;
    }

    ?>

    Videos, Slideshows and Podcasts by Cincopa Wordpress Plugin