2010-08-25 65 views
1

我试图在我的页面上实现SWFUpload上传图片。文件路径存储在一个唯一的ID作为关键字的表中,该文件以一个新的文件名存储在服务器上。我需要返回id或文件名,以便我稍后需要时可以访问这些信息。这是可能的,它是如何完成的?也许我可以更新一个asp:标签?SWFUpload asp.net返回上传文件的新文件名

我有以下代码:

upload.aspx.cs (我还没有实现的数据库中保存尚为我想知道这是可能的第一)

 protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      // Get the data 
      HttpPostedFile postedfile = Request.Files["Filedata"]; 

      int n = 0; 
      string fullPath; 

      while (true) 
      { 
       fullPath = Server.MapPath("Img\\") + n.ToString() + RemoveSpecialChars(postedfile.FileName); 
       if (File.Exists(fullPath)) 
       { 
        n++; 
       } 
       else 
       { 
        postedfile.SaveAs(fullPath); 
        break; 
       } 
      } 

     } 
     catch 
     { 
      // If any kind of error occurs return a 500 Internal Server error 
      Response.StatusCode = 500; 
      Response.Write("An error occured"); 
      Response.End(); 
     } 
     finally 
     { 

      Response.End(); 
     } 
    } 

默认。 ASPX

 <!-- 
    Image upload 
    --> 
    <script type="text/javascript" src="Scripts/swfupload.js"></script> 
    <script type="text/javascript" src="Scripts/handlers.js"></script> 
    <script type="text/javascript"> 
     var swfu; 
     window.onload = function() { 
      swfu = new SWFUpload({ 
       // Backend Settings 
       upload_url: "Upload.aspx", 
       post_params: { 
        "ASPSESSID": "<%=Session.SessionID %>" 
       }, 

       // File Upload Settings 
       file_size_limit: "5120", //5MB 
       file_types: "*.jpg", 
       file_types_description: "JPG Images", 
       file_upload_limit: 0, // Zero means unlimited 

       // Event Handler Settings - these functions as defined in Handlers.js 
       // The handlers are not part of SWFUpload but are part of my website and control how 
       // my website reacts to the SWFUpload events. 
       swfupload_preload_handler: preLoad, 
       swfupload_load_failed_handler: loadFailed, 
       file_queue_error_handler: fileQueueError, 
       file_dialog_complete_handler: fileDialogComplete, 
       upload_progress_handler: uploadProgress, 
       upload_error_handler: uploadError, 
       upload_success_handler: uploadSuccess, 
       upload_complete_handler: uploadComplete, 

       // Button settings 
       button_image_url: "Style/Images/XPButtonNoText_160x22.png", 
       button_placeholder_id: "spanButtonPlaceholder", 
       button_width: 160, 
       button_height: 22, 
       button_text: '<span class="button">Välj bilder</span>', 
       button_text_style: '.button { font-family: Helvetica, Arial, sans-serif; font-size: 14pt; }', 
       button_text_top_padding: 1, 
       button_text_left_padding: 5, 

       // Flash Settings 
       flash_url: "swfupload.swf", // Relative to this file 
       flash9_url: "swfupload_FP9.swf", // Relative to this file 

       custom_settings: { 
        upload_target: "divFileProgressContainer" 
       }, 

       // Debug Settings 
       debug: false 
      }); 
     } 
    </script> 

的Default.aspx

<div id="swfu_container" style="margin: 0px 10px;"> 
     <div> 
      <span id="spanButtonPlaceholder"></span> 
     </div> 
     <div id="divFileProgressContainer" style="height: 75px;"></div> 
    </div> 

谢谢。

+0

该演示实际上看起来是做什么我要成功: http://demo.swfupload.org/v220/formsdemo/index.php 但是我不知道upload.aspx/upload.aspx.cs(他们有upload.php)应该如何。 – Mikael 2010-08-25 08:52:45

回答

1

我找到了解决办法: 如果我往里handlers.js(由SWFUpload的提供)我能赶上什么从upload.aspx.cs

内upload.aspx.cs写返回:

protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      // Get the data 
      HttpPostedFile postedfile = Request.Files["Filedata"]; 

      Response.Write((postedfile.FileName); //Returns filename to javascript 

     } 
     catch 
     { 
      // If any kind of error occurs return a 500 Internal Server error 
      Response.StatusCode = 500; 
      Response.Write("An error occured"); 
      Response.End(); 
     } 
     finally 
     { 

      Response.End(); 
     } 
    } 
} 

内handler.js(从演示页面下载)替换为uploadSuccess:

function uploadSuccess(file, serverData) { 
try { 

    alert(serverData); 

    addImage("thumbnail.aspx?id=" + serverData); 

    var progress = new FileProgress(file, this.customSettings.upload_target); 

    progress.setStatus("Thumbnail Created."); 
    progress.toggleCancel(false); 


} catch (ex) { 
    this.debug(ex); 
} 
}