Orait.. dah siap.. huhu.. pening paler.. haha
Untuk upload image ini, aku ada pakai javascript, C# class untuk ImageHandler, WebConfig dan Ajax control kit.. Agak panjang cara nie...

(
Mula-mula aku create satu class untuk handler image termasuk nak resize, get image daripada byte dan so on on.
Code:
public class imageHandler:[B]IHttpHandler,[/B] IRequiresSessionState
{
#region Image Processing
public void ProcessRequest(HttpContext context)
{
context.Response.Clear();
if (context.Request.QueryString.Count != 0)
{
var storedImage = context.Session[detailsInventory.STORED_IMAGE] as byte[];
if (storedImage != null)
{
Image image = GetImage(storedImage);
if (image != null)
{
context.Response.ContentType = "image/jpeg";
image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
**
**
**
**
public Image GetImage(byte[] storedImage)
{
var stream = new MemoryStream(storedImage);
return Image.FromStream(stream);
**
public bool IsReusable
{
get { return false; **
**
#endregion
**
Kemudian pada webconfig tambah
httpHandler
Code:
<httpHandlers>
<add validate="false" verb="*" path="imageHandler.ashx" type="malsic_asset.Engine.imageHandler,malsic_asset"/>
</httpHandlers>
Pada markup language, tambah ajax control kit dan sedikit javascript punya language.
Code:
<script language="javascript" type="text/javascript">
function getRandomNumber() {
var randomnumber = Math.random(10000);
return randomnumber;
**
function OnClientAsyncFileUploadComplete(sender, args) {
var fileName = args.get_fileName();
var fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1);
if (fileExtension == 'jpg' || fileExtension == 'png') {
var handlerPage = '<%= Page.ResolveClientUrl("~/imageHandler.ashx")%>';
var queryString = '?randomno=' + getRandomNumber();
var src = handlerPage + queryString;
var clientId = '<%=Image1.ClientID %>';
document.getElementById(clientId).setAttribute("src", src);
**
else {
alert("Only JPG and PNG file format allow to upload");
**
**
<asp:AsyncFileUpload ID="asyncFileUpload" runat="server"
OnClientUploadComplete="OnClientAsyncFileUploadComplete"
OnUploadedComplete="OnAsyncFileUploadComplete"
CompleteBackColor="#99CCFF" UploaderStyle="Modern" />
Pada code behind aspx. Aku buat code selepas
upload complete event.
Code:
public static readonly string STORED_IMAGE = "SessionImage";
protected void OnAsyncFileUploadComplete(object sender, AsyncFileUploadEventArgs e)
{
if (asyncFileUpload.PostedFile != null)
{
HttpPostedFile file = asyncFileUpload.PostedFile;
byte[] data = ReadFile(file);
Session[STORED_IMAGE] = data;
**
**
private byte[] ReadFile(HttpPostedFile file)
{
byte[] data = new Byte[file.ContentLength];
file.InputStream.Read(data, 0, file.ContentLength);
return data;
**
Kemudian, bila user confirm.. Baru image dari client akan ditukar kepada Image, Resize, Rename dan simpan dalam folder.
Code:
string id = Guid.NewGuid().ToString() + ".jpg";
assest_engine image = new assest_engine();
byte[] imgByte = (byte[])Session[STORED_IMAGE];
return image.resizeImage(Server.MapPath(@"\Images\Models\") + id, imgByte);
Huhu... settle la jugak.. agak mencabar bagi aku... 1st time buat ASP..