2011-09-16 7 views
1

私はクライアント側で画像のサイズを変更するオプションがあるため、Pluploadプラグインを使用して複数の画像をアップロードしています。元のサイズで画像をアップロードし、サイズ変更された画像を別のフォルダにコピーします。pluploadを使用して2つの異なる次元の画像を保存する方法

誰でも私にさらにproceeする方法を提案できますか? ここに私のコードです:

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
    Dim chunk As Integer = If(context.Request("chunk") IsNot Nothing, Integer.Parse(context.Request("chunk")), 0) 
    Dim fileName As String = If(context.Request("name") IsNot Nothing, context.Request("name"), String.Empty) 

    Dim fileUpload As HttpPostedFile = context.Request.Files(0) 

    Dim uploadPath = context.Server.MapPath("~/uploads") 
    Using fs = New FileStream(Path.Combine(uploadPath, fileName), If(chunk = 0, FileMode.Create, FileMode.Append)) 
     Dim buffer = New Byte(fileUpload.InputStream.Length - 1) {} 
     fileUpload.InputStream.Read(buffer, 0, buffer.Length) 

     fs.Write(buffer, 0, buffer.Length) 
    End Using 

    context.Response.ContentType = "text/plain" 
    context.Response.Write("Success") 
End Sub 

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable 
    Get 
     Return False 
    End Get 
End Property 

この私のスクリプトコード:

<script type="text/javascript"> 
    $(function() { 
     // Setup flash version 
     $("#flash_uploader").pluploadQueue({ 
      // General settings 
      runtimes: 'flash', 
      url: 'upload.ashx', 
      max_file_size: '10mb', 
      chunk_size: '1mb', 
      unique_names: true, 
      filters: [ 
     { title: "Image files", extensions: "jpg" } 
    ], 

      // Resize images on clientside if we can 
      resize: { width: 800, height: 600, quality: 90 }, 

      // Flash settings 
      flash_swf_url: 'js/plupload.flash.swf', 

      init: { StateChanged: function (up) { 
       // Called when the state of the queue is changed 
       if (up.state == plupload.STOPPED) { 
        $("#btnSubmit").removeAttr("disabled"); 
       } 
      } 
      } 

     }); 
    var uploader = $('#flash_uploader').pluploadQueue(); 
    uploader.bind('FileUploaded', function (up, file, res) { 
     $('#showfilelist').append("<div id=" + file.id + "><a href='uploads/" + file.target_name + "' target='_blank'><img src='uploads/" + file.target_name + "' border='0'/><br>" + file.name + "</a><br>(" + plupload.formatSize(file.size) + ") <span></span></div>"); 

}); 
}); 

</script> 

答えて

2
// Resizing an image 
// Inputs [ new image size (Height,Width), Origial file path & name, new file path & name ] 

ResizeImage(int height,int width, string inputFile, string outputFile) 
{ 
      var img = Image.FromFile(inputFile); 
      Image imagThumb = null; 
      imagThumb = img.GetThumbnailImage(width, height, null, new IntPtr()); 
      imagThumb.Save(outputFile); 
} 

入力および出力ファイルを使用すると、画像に用

eg.var input = Server.MapPath("~/images/imagename"); 
+0

感謝を保存するパスからアクセスすることができ、あなたの実際にはこれはハンドラであり、この処理を続行できませんので、上記のハンドラにこのコードを追加する可能性はありますか? – coder