本帖最后由 fengziba2010 于 2010-03-20 16:06:33 编辑

解决方案 »

  1.   

    我想问一句:你怎么知道网易邮箱的上传附件是在客户端判断的啊???
    这个问题好多人都问过了,还是放弃吧。只能使用服务器端判断,然后在客户端使用DHTML更新。
      

  2.   

    网易邮箱使用的是flash上传的,
    客户端js是做不到的...参考:
    http://swfupload.org/
      

  3.   

    但是 flash 怎么做上传呢?
      

  4.   

    用flash, 比如 swfupload  http://www.swfupload.org
      

  5.   

    http://swfupload.org/
      

  6.   


    var swfu;
    var setting = {
    upload_url:"ctrler_fileup.asp?action=pic_add",
    flash_url:"swfupload.swf",
    file_types:"*.jpg;*.jpeg",
    file_size_limit:"100 KB", // 设置文件大小
    file_post_name:"picture",
    file_queue_limit:1,
    file_upload_limit:1,
    post_params:{id:0,CopyrightInfo:"http://www.chinaasp.com"},
    use_query_string:false,
    requeue_on_error:false,
    prevent_swf_caching:false,
    preserve_relative_urls:false,
    button_placeholder_id:"up_btn",
    button_image_url : "images/SmallSpyGlassWithTransperancy_17x18.png",
    button_width:110,
    button_height:18,
    button_text:"上传/Upload",
    button_text_left_padding:20,
    button_text_top_padding:0,
    button_action:SWFUpload.BUTTON_ACTION.SELECT_FILE,
    button_disabled:false,
    button_cursor:SWFUpload.CURSOR.HAND,
    button_window_mode:SWFUpload.WINDOW_MODE.TRANSPARENT,
    file_queue_error_handler:fileQueueError,
    upload_success_handler:upload_success,
    upload_error_handler:upload_error
    }
    function fileQueueError(file, errorCode, message){
    try {
    var errorName = "";
    if (errorCode === SWFUpload.errorCode_QUEUE_LIMIT_EXCEEDED) {
    errorName = "You have attempted to queue too many files.";
    }
    if (errorName !== ""){
    alert(errorName);
    return;
    }
    switch (errorCode) {
    case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
    case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
    case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
    case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
    default:
    alert(message + " Please re-select a photo meeting the requirements.");
    break;
    }
    } catch (ex) {}
    }
    swfu = new SWFUpload(setting);