Home > Products >DEXTUpload.NET Professional >ÄÚµå»ùÇà  
 
   
 
 ÆÄÀÏ ¾÷·Îµå ±âº»
    1. °£´ÜÇÑ ¾÷·Îµå
    2. ´ÙÁ߯ÄÀÏ ¾÷·Îµå
    3. ´Ù¸¥ Æû¿ä¼Ò¿Í ÇÔ²² ¾÷·Îµå
    4. Multi-select Æû¿ä¼Ò¸¦ Æ÷ÇÔÇÑ ¾÷·Îµå
    5. ¾÷·ÎµåµÈ ÆÄÀÏ·Î ºÎÅÍ Á¤º¸ ¾ò±â
    6. À̹ÌÁö ÆÄÀÏÀÇ Æø°ú ³ôÀÌ Á¤º¸ ¾ò±â
    7. Database BLOBÇʵå·Î ¾÷·Îµå
    8. ´Ù¾çÇÑ Save Methodµé
    9. ÆÄÀÏÀÇ Á¸Àç¿©ºÎ üũ ¹× ¾÷·ÎµåµÈ ÆÄÀÏÀÇ »èÁ¦

 ÆÄÀÏ ¾÷·Îµå Ȱ¿ë
    1. °íÀ¯ÇÑ À̸§À¸·Î ÆÄÀÏ ÀúÀå
    2. ¾÷·Îµå ÆÄÀÏ ¿ë·® Á¦ÇÑ
    3. ¾÷·Îµå ŸÀӾƿô ¼³Á¤
    4. ¾÷·Îµå ÆÄÀÏ Á¾·ù Á¦ÇÑ
    5. ÆÄÀÏÀúÀå ¾øÀ̵µ ¾÷·ÎµåÀÛ¾÷À» Ãë¼ÒÇÏ´Â ¹æ¹ý

  ¼­¹öÃø ¾÷·Îµå ÁøÇàÀ² Ç¥½Ã±â »ç¿ë

 ÆÄÀÏ ´Ù¿î·Îµå
    1. ÆÄÀÏ ´Ù¿î·Îµå
    2. Database BLOB µ¥ÀÌÅÍ ´Ù¿î·Îµå
ÆÄÀÏ ¾÷·Îµå ±âº»
1. °£´ÜÇÑ ÆÄÀϾ÷·Îµå
Àü¼ÛÇÒ FormÀÌ ÀÖ´Â ÆäÀÌÁö(SimpleUpload.aspx)´Â ´ÙÀ½°ú °°Àº ÇüÅ·ΠÀÛ¼ºµÈ´Ù.

[SimpleUpload.aspx]
<%@ Page ... %>
<HTML>
<BODY>
<FORM NAME= "writeform" METHOD= "post"ACTION="SU_Process.aspx?ProgressID=0"
ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="file1"><BR>
<INPUT TYPE="submit" VALUE="upload">
</FORM>
</BODY>
</HTML>


Form tag¿¡ ÁöÁ¤µÈ ENCTYPE="multipart/form-data" ´Â ÆÄÀϵ¥ÀÌÅÍ<input type= "file">¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ÆûÀ» Àü¼ÛÇϱâ À§Çؼ­ ¹Ýµå½Ã ÇÊ¿äÇÑ ¼Ó¼ºÀ¸·Î¼­ »ý·«µÉ ¼ö ¾ø´Ù.
´ÙÀ½Àº ½ÇÁ¦·Î ÆÄÀÏ ¾÷·Îµå µîÀÇ ÀÛ¾÷À» ¼öÇàÇÏ´Â ÆäÀÌÁö(SimpleUpload.aspx)ÀÌ´Ù.

[SU_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
fileUpload.Save();
// fileUpload["file1"].Save(); <-- °°Àº ±¸¹®
// fileUpload["file1"][0].Save(); <-- °°Àº ±¸¹®
}
}
¡¦


À§ Äڵ忡 µû¶ó ¾÷·ÎµåµÈ ÆÄÀÏÀº µðÆúÆ® °æ·ÎÀÎ "c:\"¿¡ ÀúÀåµÈ´Ù. µðÆúÆ® °æ·Î¸¦ ¹Ù²Ù°í ½ÍÀ¸¸é °³Ã¼ »ý¼ºÄÚµå ´ÙÀ½ À§Ä¡¿¡ uploadform.DefaultPath = "c:\temp" ¿Í °°Àº Äڵ带 ³Ö¾îÁÖ¸é µÈ´Ù. uploadform.Save´Â ¾÷·ÎµåµÈ ÆÄÀÏÀ» ¼­¹ö¿¡ µð½ºÅ©ÆÄÀÏ ÇüÅ·ΠÀúÀåÇÏ´Â °ÍÀ¸·Î uploadform("file1") .Save¿Í °°´Ù.
¿©±â¼­ "file1"Àº <INPUT TYPE="file" NAME="file1">¿¡¼­ÀÇ NAME¼Ó¼º¿¡ ÇØ´çµÇ´Â À̸§°ú °°¾Æ¾ß ÇÑ´Ù. SaveÇÔ¼öµé¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº ¾Æ·¡¿¡ ÀÖ´Â "´Ù¾çÇÑ Save Methodµé" Àå¿¡ ±â¼úµÇ¾î ÀÖ´Ù.

¡Ø ¾Æ·¡ "Multiple Upload" ¿¹Á¦¿¡¼­ ó·³ <INPUT TYPE= "file"...>Ç׸ñÀÌ ¿©·¯ °³ÀÏ °æ¿ì, uloadform.Save, uploadform.SaveAs, uploadform.SaveVirtual, uploadform.SaveAsVirtual, uploadform.SaveAsBlob, uploadform.FileLen, uploadform.FileName, uploadform.FilePath, uploadform.MimeType °ú °°Àº Ç¥ÇöÀº ¸ðµÎ uploadform("file1").xxx ¿Í µ¿ÀÏÇÑ Ç¥ÇöÀ̸ç, ¿©·¯ °³ÀÇ <<INPUT TYPE="file"...>Ç׸ñ Áß Ã¹ ¹øÂ° ÆÄÀÏÇ׸ñÀ» °¡¸®Å²´Ù.
 
2. ´ÙÁ߯ÄÀÏ ¾÷·Îµå
´ÙÀ½ ¿¹Á¦´Â ¿©·¯ °³ÀÇ ÆÄÀÏÀ» µ¿½Ã¿¡ ¾÷·ÎµåÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ°í ÀÖ´Ù.

[MultipleUpload.aspx]
<%@ Page ... %>
<HTML>
<BODY>
<FORM NAME= "writeform" METHOD= "post"ACTION="MU_Process.aspx?ProgressID=0"
ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="file1"><BR>
<INPUT TYPE="file" NAME="file2"><BR>
<INPUT TYPE="file" NAME="file3"><BR>
<INPUT TYPE="submit" VALUE="upload">
</FORM>
</BODY>
</HTML>

[MU_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
fileUpload[¡°file1¡±].Save();
fileUpload[¡°file2¡±].Save();
fileUpload[¡°file3¡±].Save();
}
}
¡¦


¾÷·ÎµåµÈ ÆÄÀϵ鿡 ´ëÇÑ ÂüÁ¶´Â "file1", "file2", "file3"¿Í °°Àº NAME ¼Ó¼º°ªµéÀ» ÅëÇØ¼­ ÀÌ·ç¾îÁø´Ù.
¶Ç ´Ù¸¥ ¹æ¹ýÀ¸·Î, ¿©·¯ INPUTÇ׸ñµéÀÇ NAME ¼Ó¼ºÀ» µ¿ÀÏÇÑ °ªÀ¸·Î ÁöÁ¤ÇÑ ´ÙÀ½ ¹Ýº¹¹®À» ÀÌ¿ëÇØ¼­ ÇѲ¨¹ø¿¡ ÀúÀåÇÒ ¼öµµ ÀÖ´Ù. ´ÙÀ½Àº À̸¦ º¸¿©ÁÖ´Â ¿¹Á¦ÀÌ´Ù.

[MultipleUpload2.aspx]
<%@ Page ... %>
<HTML>
<BODY>
<FORM NAME= "writeform" METHOD= "post"ACTION="MU_Process.aspx?ProgressID=0"
ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="files"><BR>
<INPUT TYPE="file" NAME="files"><BR>
<INPUT TYPE="file" NAME="files"><BR>
<INPUT TYPE="submit" VALUE="upload">
</FORM>
</BODY>
</HTML>

[MU_Process2.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
for (int i = 0; i < fileUpload["files"].Count; i++)
fileUpload["files"][i].Save();
}
}
¡¦


¾÷·ÎµåµÈ ÆÄÀϵ鿡 ´ëÇÑ ÂüÁ¶´Â "file1", "file2", "file3"¿Í °°Àº NAME ¼Ó¼º°ªµéÀ» ÅëÇØ¼­ ÀÌ·ç¾îÁø´Ù.
¶Ç ´Ù¸¥ ¹æ¹ýÀ¸·Î, ¿©·¯ INPUTÇ׸ñµéÀÇ NAME ¼Ó¼ºÀ» µ¿ÀÏÇÑ °ªÀ¸·Î ÁöÁ¤ÇÑ ´ÙÀ½ ¹Ýº¹¹®À» ÀÌ¿ëÇØ¼­ ÇѲ¨¹ø¿¡ ÀúÀåÇÒ ¼öµµ ÀÖ´Ù. ´ÙÀ½Àº À̸¦ º¸¿©ÁÖ´Â ¿¹Á¦ÀÌ´Ù.

À§ ¿¹Á¦¿¡¼­ For¹®À» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇصµ µ¿ÀÏÇÑ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

foreach (DEXTUpload.NET.FormElement member in fileUpload["files"])
member.Save();
 
3. ´Ù¸¥ Æû¿ä¼Ò¿Í ÇÔ²² ¾÷·Îµå
FormÀÇ ´Ù¸¥ ¿ä¼Òµéµµ ÆÄÀÏ¿ä¼Ò¿Í ¸¶Âù°¡Áö·Î NAME ¼Ó¼º°ªÀ» ÅëÇØ¼­ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.

[UploadElements.aspx]
<%@ Page ... %>
<HTML>
<BODY>
<FORM NAME= "writeform" METHOD= "post"ACTION="UE_Process.aspx?ProgressID=0"
ENCTYPE="multipart/form-data">
<INPUT TYPE="text" NAME="title"><BR>
<TEXTAREA NAME="content" ROWS="10" COLS="50"></TEXTAREA><BR>
<INPUT TYPE="file" NAME="file1"><BR>
<INPUT TYPE="submit" VALUE="upload">
</FORM>
</BODY>
</HTML>

[UE_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
string title = fileUpload[¡°title¡±].Value;
string content = fileUpload[¡°content¡±].Value;
fileUpload[¡°file1¡±].Save();
}
}
¡¦
 
4. Multi-select Æû¿ä¼Ò¸¦ Æ÷ÇÔÇÑ ¾÷·Îµå
DEXTUpload´Â ListBox, Radio button µî°ú °°ÀÌ ÇϳªÀÇ Name ¼Ó¼º¿¡ ´ëÇØ ¿©·¯ Value°ªµéÀ» °¡Áú ¼ö ÀÖ´Â Multi-select Æû ¿ä¼ÒµéÀ» ó¸®ÇÒ ¶§, Request.FormÀ» ¾²´Â °Íó·³ Æí¸®ÇÏ°Ô À̸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù.

[UploadMultiElements.aspx]
<%@ Page ... %>
<HTML>
<BODY>
<FORM NAME= "writeform" METHOD= "post"ACTION="UE_Process.asp?ProgressID=0"
ENCTYPE="multipart/form-data">
<H2>Select your favorite sports</H2>
<SELECT NAME="Sports" MULTIPLE>
<OPTION VALUE="Soccer">Soccer</OPTION>
<OPTION VALUE="Baseball">Baseball</OPTION>
<OPTION VALUE="basketball">Basketball</OPTION>
</SELECT><BR>
<INPUT TYPE="file" NAME="DescFile"><BR>
<INPUT TYPE="submit" VALUE="upload">
</FORM>
</BODY>
</HTML>

[UME_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
Response.Write(¡°Your favorite sports :<br>");
for (int i = 0; i < fileUpload["Sports"].Count; i++)
Response.Write("-" + fileUpload["Sports"][i].Value + "<br>");
fileUpload["DescFile"].Save();
}
}
¡¦


À§ ¿¹Á¦¿¡¼­ For¹®À» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇصµ µ¿ÀÏÇÑ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

foreach (DEXTUpload.NET.FormElement member in fileUpload["Sports "])
Response.Write("-" + member.Value + "<br>")
 
5. ¾÷·ÎµåµÈ ÆÄÀÏ·Î ºÎÅÍ Á¤º¸ ¾ò±â
¾÷·ÎµåµÈ ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖµµ·Ï ´ÙÀ½°ú °°Àº PropertyµéÀÌ Á¦°øµÈ´Ù.
.FileLen : ¾÷·ÎµåµÈ ÆÄÀÏÀÇ ±æÀÌ
.FileName : ¾÷·ÎµåµÈ ÆÄÀÏÀÇ À̸§(°æ·ÎÁ¦¿Ü)
.FilePath : ¾÷·ÎµåµÈ ÆÄÀÏÀÇ Àüü°æ·Î
.MimeType : ¾÷·ÎµåµÈ ÆÄÀÏÀÇ Mime Type
.LastSavedFileName : ¾÷·ÎµåµÇ¾î ½ÇÁ¦·Î ¼­¹ö¿¡ ÀúÀåµÈ ÆÄÀÏÀÇ À̸§(°æ·ÎÁ¦¿Ü)
.LastSavedFilePath : ¾÷·ÎµåµÇ¾î ½ÇÁ¦·Î ¼­¹ö¿¡ ÀúÀåµÈ ÆÄÀÏÀÇ Àüü°æ·Î

¡Ø .FileName°ú .FilePath´Â »ç¿ëÀÚ°¡ ¾÷·ÎµåÇÑ ¿À¸®Áö³Î ÆÄÀÏ¿¡ ´ëÇÑ À̸§°ú Àüü°æ·Î°ªÀ» °¡Áø´Ù.
¾÷·ÎµåµÇ¾î ¼­¹ö¿¡ ÀúÀåµÈ ÆÄÀÏÀÇ Àüü°æ·Î°ªÀº .Save, .SaveAs Method µîÀÇ ¸®ÅϰªÀ¸·ÎºÎÅÍ ¾òÀ» ¼ö ÀÖ´Ù.

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
Response.Write("[Uploaded File Information] <BR>");
Response.Write("FileName : " + fileUpload["file1"].FileName + "<BR>");
Response.Write("FileExtension : " + fileUpload["file1"].FileExtension + "<BR>");
Response.Write("FullPath : " + fileUpload["file1"].FilePath + "<BR>");
Response.Write("FileLength : " + fileUpload["file1"].FileLength + " Byte(s)<BR>");
Response.Write("MimeType : " + fileUpload["file1"].MimeType + "<BR>");

string uploadedPath = fileUpload["file1"].Save();
Response.Write("UploadedPath : " + uploadedPath + "<BR>");
Response.Write("LastSavedFilePath : " + fileUpload["file1"].LastSavedFilePath + "<BR>");
Response.Write("LastSavedFileName : " + fileUpload["file1"].LastSavedFileName);
}
}
¡¦


À§ ÆäÀÌÁö°¡ ½ÇÇàµÈ °á°ú´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π³ªÅ¸³¯ °ÍÀÌ´Ù.

[Uploaded File Information]
FileName : sample.jpg
FullPath : c:\data\sample.jpg
FileLength : 176816 Byte(s)
MimeType : image/pjpeg
UploadedPath : d:\upload\sample.jpg
LastSavedFilePath : d:\upload\sample.jpg
LastSavedFileName : sample.jpg
 
6. À̹ÌÁö ÆÄÀÏ(GIF/JPG/BMP)ÀÇ Æø°ú ³ôÀÌ Á¤º¸ ¾ò±â
¾÷·ÎµåµÈ ÆÄÀÏÀÌ À̹ÌÁö ÆÄÀÏ(GIF/JPG/BMP)ÀÎ °æ¿ì ´ÙÀ½°ú °°ÀÌ À̹ÌÁöÀÇ Æø°ú ³ôÀÌ Á¤º¸ µîÀ» ¾òÀ» ¼ö ÀÖ´Â Ãß°¡ÀûÀÎ PropertyµéÀÌ Á¦°øµÈ´Ù.

.ImageFormat : ¾÷·ÎµåµÈ À̹ÌÁö ÆÄÀÏÀÇ Æ÷¸ä
.ImageWidth : ¾÷·ÎµåµÈ À̹ÌÁö ÆÄÀÏÀÇ Æø
.ImageHeight : ¾÷·ÎµåµÈ À̹ÌÁö ÆÄÀÏÀÇ ³ôÀÌ

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
Response.Write("[Uploaded Image File Information] <BR>");
Response.Write("FileName : " + fileUpload[¡°file1¡±].FileName + "<BR>");
Response.Write("FullPath : " + fileUpload[¡°file1¡±].FilePath + "<BR>");
Response.Write("FileLength : " + fileUpload[¡°file1¡±].FileLength + " Byte(s)<BR>");
Response.Write("MimeType : " + fileUpload[¡°file1¡±].MimeType + "<BR>");
Response.Write("ImageFormat : " + fileUpload[¡°file1¡±].ImageFormat + "<BR>");
Response.Write("ImageWidth : " + fileUpload[¡°file1¡±].ImageWidth + "<BR>");
Response.Write("ImageHeight : " + fileUpload[¡°file1¡±].ImageHeight + "<BR>");

string uploadedPath = fileUpload[¡°file1¡±].Save();
Response.Write("UploadedPath : " + uploadedPath);
}
}
¡¦


À§ ÆäÀÌÁö°¡ ½ÇÇàµÈ °á°ú´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π³ªÅ¸³¯ °ÍÀÌ´Ù.

[Uploaded File Information]
FileName : sample.jpg
FullPath : c:\data\sample.jpg
FileLength : 176816 Byte(s)
MimeType : image/pjpeg
ImageFormat : JPG
ImageWidth : 1024
ImageHeight : 768

UploadedPath : c:\temp\sample.jpg
 
7. Database BLOBÇʵå·Î ¾÷·Îµå
´ÙÀ½°ú °°ÀÌ SaveAsBlob Method¸¦ ÀÌ¿ëÇÏ¸é ÆÄÀÏÀ» ¾÷·ÎµåÇÏ¿© Database BLOBÇʵå·Î ÀúÀåÇÒ ¼ö ÀÖ´Ù.

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
string ConnectionString = "¡¦¡±;
OleDbConnection cn = new OleDbConnection(ConnectionString);
cn.Open();

string strQuery = "SELECT filename, filesize, filedata FROM DEXTUPLOAD";
OleDbDataAdapter adapter = new OleDbDataAdapter(strQuery, cn);
adapter.InsertCommand = new OleDbCommand("INSERT INTO DEXTUPLOAD(filedata,
filename, filesize) VALUES (?, ?, ?)", cn);
adapter.InsertCommand.Parameters.Add(¡¦);
adapter.InsertCommand.Parameters.Add(¡¦);
adapter.InsertCommand.Parameters.Add(¡¦);
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
DataSet ds = new DataSet();
adapter.Fill(ds);

DataRow newRow = ds.Tables[0].NewRow();

using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
newRow[0] = fileUpload.FileName;
newRow[1] = fileUpload.FileLength;
newRow[2] = fileUpload.SaveAsBlob();

ds.Tables[0].Rows.Add(newRow);
adapter.Update(ds);
}
cn.Close();
}
¡¦
 
8. ´Ù¾çÇÑ Save Methodµé
DEXTUpload ÄÄÆ÷³ÍÆ®´Â ¾÷·ÎµåµÈ ÆÄÀÏÀ» ¼­¹ö ÆÄÀϽýºÅÛ ¶Ç´Â Database¿¡ ÀúÀåÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¹æ¹ýÀ» Á¦°ø.
* ¾÷·ÎµåµÈ ÆÄÀϰú µ¿ÀÏÇÑ À̸§ÀÇ ÆÄÀÏ·Î ¼­¹ö¿¡ ÀúÀåÇÏ´Â Method
- Save : DefaultPath property°ªÀ¸·Î ÁöÁ¤µÈ °æ·Î¿¡ ÀúÀå
- Save [PathÁöÁ¤] : ÁöÁ¤µÈ °æ·Î¿¡ ÀúÀå
- SaveVirtual [Virtual PathÁöÁ¤] : ÁöÁ¤µÈ °¡»ó°æ·Î¿¡ ÀúÀå

* ¾÷·ÎµåµÈ ÆÄÀϰú ´Ù¸¥ À̸§ÀÇ ÆÄÀÏ·Î ¼­¹ö¿¡ ÀúÀåÇÏ´Â Method
- SaveAs [Full PathÁöÁ¤] : ÁöÁ¤µÈ °æ·Î¿Í ÆÄÀϸíÀ¸·Î ÀúÀå
- SaveAsVirtual [Full Virtual PathÁöÁ¤] : ÁöÁ¤µÈ °¡»ó°æ·Î¿Í ÆÄÀϸíÀ¸·Î ÀúÀå

* ¾÷·ÎµåµÈ ÆÄÀÏÀ» Database BLOBÇʵ忡 ÀúÀåÇÏ´Â ÇÔ¼ö
- SaveAsBlob [ADO Field°³Ã¼ÁöÁ¤] : ÁöÁ¤µÈ Database BLOBÇʵ忡 ÀúÀå

¡Ø SaveAsBlobÀ» Á¦¿ÜÇÑ ³ª¸ÓÁö ¸ðµç Save MethodµéÀº bOverwrite ¶ó´Â ÀÎÀÚ¿Í ½ÇÁ¦·Î ¼­¹ö¿¡ ÀúÀåµÇ´Â ÆÄÀÏ¿¡ ´ëÇÑ Àüü°æ·Î¸¦ ¸®ÅϰªÀ¸·Î °¡Áø´Ù. bOverwrite ÀÎÀÚ¸¦ »ý·«ÇÒ °æ¿ì ±âº»°ªÀº TrueÀ̸ç ÇØ´ç °æ·Î¿¡ °°Àº À̸§ÀÇ ÆÄÀÏÀÌ ÀÖÀ» °æ¿ì °ãÃľ²°Ô µÈ´Ù. bOverwrite ÀÎÀÚ°ªÀ» ¸í½ÃÀûÀ¸·Î False·Î ÁöÁ¤ÇÒ °æ¿ì´Â À¯ÀÏÇÑ ÆÄÀÏ ¸í( filename(2).ext, filename(3).ext ... )À» ±¸Çؼ­ ÀúÀåÇÏ°Ô µÈ´Ù.
 
9. ÆÄÀÏÀÇ Á¸Àç¿©ºÎ üũ ¹× ¾÷·ÎµåµÈ ÆÄÀÏÀÇ »èÁ¦
DEXTUpload´Â ÆÄÀÏÀÇ Á¸Àç¿©ºÎ¸¦ üũÇÒ ¼ö ÀÖ´Â FileExists ¸Þ½îµå¿Í ¾÷·ÎµåµÈ ÆÄÀÏÀ» »èÁ¦ÇÒ ¼ö ÀÖ´Â DeleteFile ¸Þ½îµå¸¦ Á¦°øÇÑ´Ù. ´ÙÀ½Àº FileExists¿Í SaveAs ¸Þ½îµå¸¦ ÀÌ¿ëÇÏ¿© ¾÷·ÎµåÇÑ ÆÄÀÏÀ» ¼­¹ö¿¡ °íÀ¯ÇÑ ÆÄÀϸíÀ¸·Î ÀúÀåÇÏ´Â ¿¹Á¦ÀÌ´Ù.

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
string filename = fileUpload[¡°file1¡±].Filename;
string filepath = fileUpload[¡°file1¡±].DefaultPath + "\\" + filename;

// ÀÌ¹Ì °°Àº À̸§ÀÇ ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é À¯ÀÏÇÑ ÆÄÀϸíÀ» ±¸ÇÑ´Ù.
if (fileUpload[¡°file1¡±].FileExists(filepath))
{
string filenameonly;
string fileext;

int Index = filepath.LastIndexOf(".");
if (Index > 0)
{
// È®ÀåÀÚ°¡ Á¸ÀçÇÑ´Ù¸é
filenameonly = filepath.Substring(0, Index); // ÆÄÀϸí±îÁöÀÇ °æ·Î°ª(È®ÀåÀÚ Á¦¿Ü)
fileext = filepath.Substring(Index); // "."¹®ÀÚ¸¦ Æ÷ÇÔÇÑ È®ÀåÀÚ
}
else
{
// È®ÀåÀÚ°¡ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì
filenameonly = filepath;
fileext = "";
}

// À¯ÀÏÇÑ ÆÄÀÏ °æ·Î ¾ò±â
for (int i=2; ; i++)
{
filepath = filenameonly + "(" + i.ToString() + ")" + fileext;
if (!File.Exists(filepath)) break;
}
}

fileUpload["file1"].SaveAs(filepath);

// ÇÊ¿äÇÏ´Ù¸é ÀÌ ÆÄÀÏÀ» »èÁ¦ÇÒ ¼öµµ ÀÖ´Ù.
// fileUpload.DeleteFile(filepath);
}
}
¡¦


¡Ø DEXTUpload.NET´Â ÆÄÀÏÀ» °íÀ¯ÇÑ À̸§À¸·Î ÀúÀåÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» ±âº»ÀûÀ¸·Î Á¦°øÇÑ´Ù.
À§ ¿¹Á¦´Â ´ÜÁö DEXTUpload.NETÀÌ Á¦°øÇÏ´Â ¹æ½ÄÀÌ ¾Æ´Ï¶ó »ç¿ëÀÚ ³ª¸§´ë·ÎÀÇ ¹æ½Ä´ë·Î °íÀ¯ÇÑ ÆÄÀϸíÀ» °áÁ¤ÇϰíÀÚ ÇÒ °æ¿ìÀÇ ¿¹¸¦ º¸¿©ÁØ °ÍÀÌ´Ù.
ÆÄÀÏ ¾÷·Îµå Ȱ¿ë
1. °íÀ¯ÇÑ À̸§À¸·Î ÆÄÀÏ ÀúÀå
Save, SaveVirtual, SaveAs, SaveAsVirtual Method ´Â ±âº»ÀûÀ¸·Î ¾÷·ÎµåµÈ ÆÄÀÏÀ» ¼­¹ö¿¡ ÀúÀåÇÒ ¶§ ÇØ´ç °æ·Î¿¡ µ¿ÀÏÇÑ À̸§ÀÇ ÆÄÀÏÀÌ Á¸ÀçÇÒ °æ¿ì °ãÃľ²°Ô µÈ´Ù. °ãÃľ²Áö ¾Ê°í À¯ÀÏÇÑ ÆÄÀϸíÀ» ±¸Çؼ­ ÀúÀåÇÏ°í ½ÍÀ¸¸é µÎ ¹øÂ° ÀÎÀÚÀÎ bOverwrite¸¦ ¸í½ÃÀûÀ¸·Î False·Î ÁöÁ¤ÇÏ¸é µÈ´Ù. ("´Ù¾çÇÑ Save Methodµé" Chapter ÂüÁ¶)

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
string UploadedFilename = fileUpload[¡°file1¡±].SaveAs(¡°C:\\Data\\sample.zip¡±, false);
Response.Write(¡°uploaded file : ¡° + UploadedFilename);
}
}
¡¦


À§ ¿¹Á¦¿¡¼­ c:\data Æú´õ¿¡ sample.zipÀ̶ó´Â ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÒ °æ¿ì ¾÷·ÎµåµÈ ÆÄÀÏÀº "c:\data\sample(2).zip"À̶ó´Â À̸§À¸·Î ÀúÀåµÇ¾î ´ÙÀ½°ú °°Àº °á°ú ÆäÀÌÁö¸¦ º¸¿©ÁÖ°Ô µÈ´Ù.

[ ½ÇÇà°á°ú ]
uploaded file : c:\data\sample(2).zip
 
2. ¾÷·Îµå ÆÄÀÏ ¿ë·® Á¦ÇÑ
MaxFileLen property¸¦ ÀÌ¿ëÇÏ¸é ¾÷·Îµå °¡´ÉÇÑ ÃÖ´ë ÆÄÀÏ Å©±â¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ ÁöÁ¤µÈ Å©±âº¸´Ù Å« ÆÄÀÏÀ» ¾÷·ÎµåÇÒ °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº ¿À·ù°¡ ¹ß»ýÇÏ°Ô µÈ´Ù.

DEXTUpload error '80040200'
Warning: File size must be less than 5242880 Bytes.
/form_process.asp, line 27


´ÙÀ½ ¿¹Á¦¿Í °°ÀÌ FileLen property¸¦ ÀÌ¿ëÇØ¼­ ÃÖ´ë ÆÄÀÏ Å©±â¸¦ ÃʰúÇÏÁö ¾Ê´Â °æ¿ì¿¡¸¸ Save Method¸¦ È£ÃâÇÏ°Ô ÇÏ´Â ¹æ¹ýÀ¸·Î ¿À·ù¹ß»ý ¾øÀÌ ¾÷·Îµå ÆÄÀÏÅ©±â Á¦ÇÑ¿¡ ´ëÇÑ Ã³¸®¸¦ Ä¿½ºÅ͸¶ÀÌ¡ ÇÒ ¼öµµ ÀÖ´Ù.

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
fileUpload.MaxFileLength = 5242880;

if (fileUpload["file1"].FileLength > fileUpload.MaxFileLength)
{
Response.Write("File size must be less than 5MBytes.<br>");
Response.Write("Press the back button on your browser...<br>");
}
else
{
fileUpload["file1"].Save();
}
}
}
¡¦
 
3. ¾÷·Îµå ŸÀӾƿô ¼³Á¤
ÀϹÝÀûÀ¸·Î ÆÄÀÏ ¾÷·Îµå ¶Ç´Â Save µî°ú °°Àº ÀÛ¾÷Àº ´ë¿ë·® ÆÄÀÏ ¾÷·Îµå½Ã ±ä ½Ã°£À» ¿äÇϹǷÎ
Server.ScriptTimeout(Default: 90sec)°ú Session.Timeout(Default: 20min) °ªÀ» ¹Ù²Ù¾î ÁÖÁö ¾ÊÀ» °æ¿ì Timeout ¿¡·¯·Î ÀÎÇØ ¾÷·Îµå ÀÛ¾÷À» Á¤»óÀûÀ¸·Î ¼öÇàÇÒ ¼ö ¾ø°Ô µÈ´Ù.

DEXTUpload´Â UploadTimeout property¸¦ Á¦°øÇÔÀ¸·Î½á, ÆÄÀÏ ¾÷·Îµå½Ã º°µµÀÇ Server.ScriptTimeout,
Session.Timeout ¼³Á¤À» ÇÏÁö ¾Ê°íµµ Timeout¿¡·¯ ¾øÀÌ ´ë¿ë·® ÆÄÀÏ ¾÷·Îµå ÀÛ¾÷À» Á¤»óÀûÀ¸·Î ¼öÇàÇÒ ¼ö ÀÖ´Ù.
±âº» °ªÀº 3600sec(60min)À̰í Çʿ信 µû¶ó º¯°æÇؼ­ »ç¿ëÇÏ¸é µÈ´Ù.

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
fileUpload.UploadTimeout = 1800;
fileUpload[¡°file1¡±].Save();
}
}
¡¦


À§ ¿¹Á¦¿¡¼­´Â UploadTimeout°ªÀ» 1800sec(30min)·Î ¼³Á¤ÇßÀ¸¹Ç·Î, SaveÀÛ¾÷ÀÌ 1800sec¸¦ ÃʰúÇÏÁö ¾Ê´Â ÇÑ Timeout¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
 
4. ¾÷·Îµå ÆÄÀÏ Á¾·ù Á¦ÇÑ
DEXTUpload°¡ Á¦°øÇÏ´Â MimeType property¸¦ ÀÌ¿ëÇÏ¸é ¾÷·Îµå °¡´ÉÇÑ ÆÄÀÏÀÇ Á¾·ù¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½Àº GIF¿Í JPG ÆÄÀϸ¸ ¾÷·ÎµåÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¿¹Á¦ÀÌ´Ù.

[Form_Process.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
string mimetype = fileUpload["file1"].MimeType
if (mimetype=="image/gif" || mimetype=="image/pjpeg")
fileUpload["file1"].Save();
else
Response.Write("Your file must be GIF or JPG...<br>");
}
}
¡¦
 
5. ÆÄÀÏÀúÀå ¾øÀ̵µ ¾÷·ÎµåÀÛ¾÷À» Ãë¼ÒÇÏ´Â ¹æ¹ý
DEXTUpload°¡ Á¦°øÇÏ´Â Flush method¸¦ ÀÌ¿ëÇÏ¸é ½ÇÁ¦·Î ÆÄÀÏÀ» ¼­¹ö¿¡ ÀúÀåÇÏÁö ¾Ê°íµµ Çʿ信 µû¶ó ¾÷·Îµå ÀÛ¾÷À» ¿ÏÀüÈ÷ Ãë¼ÒÇÏ°í ³ª¸ÓÁö Äڵ带 °è¼Ó ½ÇÇàÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½Àº ÆÄÀÏ ¾÷·Îµå½Ã Á¦ÇÑµÈ ¾÷·Îµå ¿ë·®À» ÃʰúÇÒ °æ¿ì ¾÷·Îµå¸¦ Ãë¼ÒÇÏ°í ¿¡·¯¸Þ½ÃÁö¸¦ º¸¿©ÁÖ´Â ¿¹Á¦ÀÌ´Ù.

[Form_Proc.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
if (Request.TotalBytes > 1048576)
{
fileUpload.Flush();
Response.Write("Warning: File size must be less than 1 MBytes.");
}
else
{
fileUpload.Save();
Response.Write("File-upload completed.");
}
}
}
¡¦
¼­¹öÃø ¾÷·Îµå ÁøÇàÀ² Ç¥½Ã±â »ç¿ë
1. ¼­¹öÃø ¾÷·Îµå ÁøÇàÀ² Ç¥½Ã±â »ç¿ë
Server-side Graphical Progress Indicator¸¦ ÀÌ¿ëÇϸé ActiveX ControlÀ̳ª Java Applet°ú °°Àº º°µµÀÇ Client-side ¼ÒÇÁÆ®¿þ¾î¸¦ ´Ù¿î·Îµå ¹ÞÁö ¾Ê°íµµ ´ÜÁö ¼­¹öÃø ÄÄÆ÷³ÍÆ®¸¸À¸·Î ÆÄÀÏ ¾÷·Îµå ÁøÇà»óŸ¦ ½Ã°¢ÀûÀ¸·Î º¸¿©ÁÖ°í, ¾÷·Îµå ¼Óµµ, Àüü ÄÁÅÙÃ÷ÀÇ Å©±â ¹× ÇöÀç ¾÷·ÎµåµÈÄÁÅÙÃ÷ÀÇ Å©±â, ³²Àº ½Ã°£, ÇöÀç ÁøÇàµÇ°í ÀÖ´Â ÀÛ¾÷ µîÀÇ Á¤º¸¸¦ ½Ç½Ã°£À¸·Î ¸ð´ÏÅ͸µÇÒ ¼ö ÀÖ´Ù.

[ Form ÀÛ¼º ÆäÀÌÁö (GPIUpload.aspx) ]
<%@ Page ¡¦ %>
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function ShowProgress()
{
strAppVersion = navigator.appVersion;

if (document.write_form.file1.value != "")
{
ProgressID = (new Date()).getTime() % 1000000;
if (ProgressID==0) ProgressID = 1000000;

if (strAppVersion.indexOf('MSIE') != -1 && strAppVersion.substr(strAppVersion.indexOf('MSIE')+5,1) > 4) {
winstyle = "dialogWidth=385px; dialogHeight:150px; center:yes";
window.showModelessDialog("../Progress/show_progress_IE.aspx?ProgressID="+ProgressID,
null, winstyle);
}
else
{
winpos = "left=" + ((window.screen.width-380)/2) +",top="+((window.screen.height-110)/2);
winstyle="width=380,height=110,status=no,toolbar=no,menubar=no,location=no,resizable=no,
scrollbars=no,copyhistory=no," + winpos;
window.open("../Progress/show_progress_NN.aspx?ProgressID="+ProgressID,null,winstyle);
}

document.write_form.action = " form_process.aspx?ProgressID=" + ProgressID;
}
return true;
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<FORM NAME= "writeform" METHOD= "post"ACTION="form_process.aspx?ProgressID=0"
ENCTYPE="multipart/form-data" onSubmit="return ShowProgress();">

<INPUT TYPE="file" NAME="file1"><BR>
<INPUT TYPE="submit" VALUE="upload">
</FORM>
</BODY>
</HTML>


Progress Indicator¸¦ »ç¿ëÇϱâ À§Çؼ­´Â À§ ¿¹Á¦¿Í °°ÀÌ ShowProgress()¿Í °°Àº ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ Ãß°¡ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ±×¸®°í, FormÀ» SubmitÇϱâ Á÷Àü¿¡ ShowProgress() ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Progress Indicator¸¦ ½Ã°¢ÀûÀ¸·Î º¸¿©ÁÖ±â À§ÇØ »õ â(¶Ç´Â ´ëÈ­»óÀÚ)À» ¶ç¿ö ÁÖ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.
ÀÌ ¶§, »õ â¿¡¼­ º¸¿©Áö´Â ÆäÀÌÁö´Â ´ÙÀ½°ú °°´Ù.

[ Progress Indicator¸¦ º¸¿©ÁÖ´Â ÆäÀÌÁö Internet Explorer¿ë (show_progress_IE.aspx) ]
<%@ Page EnableSessionState="false" ¡¦ %>
<html>
<head>
<title>Uploading Files...</title>
<STYLE type="text/css">
td {font-size: 9pt}
</STYLE>
</head>
<body MS_POSITIONING="GridLayout" bgcolor=#d4d0c8 leftmargin=8 topmargin=0 scroll= no><BR><IFRAMEsrc="show_prog_body.aspx?ProgressID=<%Response.Write(Request.QueryString["ProgressID"]);%>"
title="Progress Step1" frameborder=0 marginheight=0 marginwidth=0 noresize scrolling=no
width=365 height=65>
</IFRAME>
<br><br>

<table border=0 width=365 cellpadding=2 cellspacing=0 bgcolor=#d4d0c8>
<tr><td>Click the <b>STOP</b> button on your browser to abort uploading.</td></tr>
</table>

</body>
</html>

[ Progress Indicator¸¦ º¸¿©ÁÖ´Â ÆäÀÌÁö ? Netscape Navigator¿ë (show_progress_NN.aspx) ]
<%@ Page EnableSessionState="false" ¡¦ %>
<frameset rows="80,1*" border="0" framespacing="0" frameborder= "NO"><BR><framesrc="show_prog_body.aspx?ProgressID=<%Response.Write(Request.QueryString["ProgressID"]);%>"

noresize scrolling="NO" frameborder="NO" name="sp_body">
<frame src="show_prog_bottom.aspx" noresize scrolling="NO" frameborder="NO" name="sp_bottom">
</frameset>


Progress Indicator¸¦ º¸¿©ÁÖ±â À§Çؼ­´Â À§¿¡ ÀÖ´Â show_progress.asp¿Í ÇÔ²² ´ÙÀ½¿¡ ÀÖ´Â show_prog_body.asp¿Í show_prog_bottom.asp°¡ ÇÊ¿äÇÏ´Ù.
1) show_progress.asp: Progress Indicator¸¦ º¸¿©ÁÖ±â À§ÇØ À¥ÆäÀÌÁö¸¦ ÇÁ·¹ÀÓÀ¸·Î ³ª´«´Ù.
2) show_prog_body.asp: ½ÇÁ¦·Î Progress Indicator¸¦ º¸¿©ÁØ´Ù.
3) show_prog_bottom.asp: (Netscape Navigator¿Í °°ÀÌ Inline FrameÀ» Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÀúÀÇ °æ¿ì¸¸ ÇÊ¿ä)

[ Progress Indicator¸¦ º¸¿©ÁÖ´Â ÆäÀÌÁö (show_prog_body.aspx) ]
<%@ Page EnableSessionState="false" ¡¦ %>

[ Progress Indicator¸¦ º¸¿©ÁÖ´Â ÆäÀÌÁö (show_prog_body.aspx.cs) ]
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUploadMonitor monitor = new DEXTUpload.NET.FileUploadMonitor())
{
monitor.ShowMonitor();
}
}

[ Progress Indicator¸¦ º¸¿©ÁÖ´Â ÆäÀÌÁö (show_prog_bottom.aspx) ]
<%@ Page EnableSessionState="false" ¡¦ %>
<HTML>
<HEAD>
<title>show_prog_bottom</title>
<STYLE type="text/css">
td {font-size: 9pt}
</STYLE>
</HEAD>
<body MS_POSITIONING="GridLayout" bgcolor="#d4d0c8" leftmargin="8" topmargin="0" scroll="no">
<table border="0" width="365" cellpadding="0" cellspacing="0" bgcolor="#d4d0c8">
<tr><td>Click the <b>STOP</b> button on your browser to abort uploading.</td></tr>
</table>
</body>
</HTML>


À§ ASP ÆäÀÌÁö¸¦ º¸¸é "EnableSessionState" ¼Ó¼ºÀ» False·Î ÁöÁ¤ÇÏ¿© ¼¼¼Ç»óŸ¦ ÇØÁ¦Çϰí ÀÖ´Ù. ¸¸ÀÏ ÀÌ ÆäÀÌÁöÀÇ ¼¼¼Ç»óŸ¦ ÇØÁ¦ÇÏÁö ¾ÊÀ¸¸é FormÀÇ submit ÀÛ¾÷, Áï ÆÄÀÏ ¾÷·Îµå ÀÛ¾÷ÀÌ Á¾·áµÇ±â Àü±îÁö´Â ÆäÀÌÁöÀÇ ½ÇÇàµÈ °á°ú¸¦ º¼ ¼ö ¾ø°Ô µÇ¹Ç·Î ¹Ýµå½Ã ÆäÀÌÁöÀÇ ¼¼¼Ç»óŸ¦ ÇØÁ¦½ÃÄÑ¾ß ÇÑ´Ù. ShowMonitor Method´Â ¸Å ¼ø°£ÀÇ ¾÷·Îµå ÁøÇà»óŸ¦ º¸¿©ÁÖ°í ¾÷·Îµå°¡ ¿Ï·áµÇ¸é ÀÚµ¿À¸·Î â(¶Ç´Â ´ëÈ­»óÀÚ)À» ´Ý´Â´Ù.

[ ¾÷·Îµå ÀÛ¾÷À» ó¸®ÇÏ´Â ÆäÀÌÁö (form_process.aspx.cs) ]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
using (DEXTUpload.NET.FileUpload fileUpload = new DEXTUpload.NET.FileUpload())
{
fileUpload[¡°file1¡±].Save();
}
}
¡¦


¾÷·Îµå ÀÛ¾÷À» ó¸®ÇÏ´Â ÆäÀÌÁö´Â Progress IndicatorÀÇ »ç¿ë¿©ºÎ¿¡ °ü°è¾øÀÌ µ¿ÀÏÇÏ°Ô ÀÛ¼ºÇØ ÁÖ¸é µÈ´Ù.
ÆÄÀÏ ´Ù¿î·Îµå
1. ÆÄÀÏ ´Ù¿î·Îµå
FileDownload°³Ã¼ÀÇ Download, DownloadVirtual Method´Â ¼­¹ö¿¡ ÀÖ´Â ÆÄÀÏÀ» À¥ºê¶ó¿ìÀú¸¦ ÅëÇØ »ç¿ëÀÚ°¡ ´Ù¿î·Îµå ÀÖ°Ô ÇÑ´Ù.
Download : ¼­¹öÀÇ ÁöÁ¤µÈ °æ·Î¿¡ ÀÖ´Â ÆÄÀÏÀ» ´Ù¿î·Îµå ÇÑ´Ù.
DownloadVirtual : ¼­¹öÀÇ ÁöÁ¤µÈ °¡»ó°æ·Î¿¡ ÀÖ´Â ÆÄÀÏÀ» ´Ù¿î·Îµå ÇÑ´Ù.

[Download.aspx.cs]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
Response.Buffer = false;
string ContentDisposition = "";
string ContentType = "";

if (Request.UserAgent.IndexOf("MSIE") >= 0)
{
//IE 5.0ÀÎ °æ¿ì.
if (Request.UserAgent.IndexOf("MSIE 5.0") >= 0)
{
ContentDisposition = "inline;filename=";
ContentType = "application/x-msdownload";
}
//IE 5.0ÀÌ ¾Æ´Ñ °æ¿ì.
else
{
ContentDisposition = "inline;filename=";
ContentType = "application/unknown";
}
}
else
{
//Netscapeµî ±âŸ ºê¶ó¿ìÀúÀÎ °æ¿ì.
ContentDisposition = "attachment;filename=";
ContentType = "application/unknown";
}

string FileName = Request.QueryString["filename"];
string FilePath = Request.QueryString["filepath"];

using (DEXTUpload.NET.FileDownload fileDownload = new DEXTUpload.NET.FileDownload())
{
Response.AddHeader("Content-Disposition", ContentDisposition + FileName);
System.IO.FileInfo fInfo = new System.IO.FileInfo(FilePath);
Response.AddHeader("Content-Length", fInfo.Length.ToString());
fInfo = null;
Response.ContentType = ContentType;
Response.CacheControl = "public";

fileDownload.Download(FilePath);
}
}
¡¦


´Ù¿î·ÎµåÇÒ ÆÄÀÏÀÇ Àüü°æ·Î¿Í ÇÔ²² »ó±â ASPÆäÀÌÁö¸¦ ½ÇÇàÇϸé ÇØ´ç ÆÄÀÏÀ» ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ°Ô µÈ´Ù. ÆäÀÌÁö »ó´ÜÀ» º¸¸é Response.Buffer = False ·Î ÁöÁ¤ÇÏ¿© ¹öÆÛ¸µ ¾øÀÌ Áï½Ã ÆÄÀÏÀ» ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ°Ô Çß°í, Content- Disposition, Content-Length, ContentType µîÀÇ ÇìµåÁ¤º¸¸¦ ÁöÁ¤ÇÑ ÈÄ Download Method¸¦ È£ÃâÇϰí ÀÖ´Ù. »ç¿ëÀÚ´Â À¥ºê¶ó¿ìÀú¿¡ ³ªÅ¸³ª´Â ´ëÈ­»óÀÚ¿¡ ´Ù¿î·ÎµåÇÒ °æ·Î¿Í ÆÄÀϸíÀ» ÁöÁ¤ÇÏ¿© ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù.
 
2. Database BLOB µ¥ÀÌÅÍ ´Ù¿î·Îµå
FileDownload°³Ã¼ÀÇ DownloadBlob Method´Â ¼­¹ö¿¡ ÀÖ´Â Database BLOBÀ» À¥ºê¶ó¿ìÀú¸¦ ÅëÇØ »ç¿ëÀÚÀÇ µð½ºÅ© ÆÄÀÏ·Î ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ°Ô ÇÑ´Ù. Database °ü·ÃºÎºÐÀ» Á¦¿ÜÇϰí´Â Download Method¿Í »ç¿ë¹ýÀÌ µ¿ÀÏÇÏ´Ù.

[ DownloadBlob.asp ]
¡¦
private void Page_Load(object sender, System.EventArgs e)
{
Response.Buffer = true;
string ContentDisposition = "";
string ContentType = "";

if (Request.UserAgent.IndexOf("MSIE") >= 0)
{
//IE 5.0ÀÎ °æ¿ì.
if (Request.UserAgent.IndexOf("MSIE 5.0") >= 0)
{
ContentDisposition = "inline;filename=";
ContentType = "application/x-msdownload";
}
//IE 5.0ÀÌ ¾Æ´Ñ °æ¿ì.
else
{
ContentDisposition = "inline;filename=";
ContentType = "application/unknown";
}
}
else
{
//Netscapeµî ±âŸ ºê¶ó¿ìÀúÀÎ °æ¿ì.
ContentDisposition = "attachment;filename=";
ContentType = "application/unknown";
}

string FileID = Request.QueryString["fileid"];

string ConnectionString = "¡¦¡±;
OleDbConnection cn = new OleDbConnection(ConnectionString);
cn.Open();

string strQuery = "SELECT filename, filesize, filedata FROM DEXTUPLOAD WHERE fileid = " + FileID;
OleDbCommand cmd = new OleDbCommand(strQuery, cn);
OleDbDataReader dataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess);

if (dataReader.Read())
{
string FileName = dataReader.GetString(0);
int FileSize = dataReader.GetInt32(1);

using (DEXTUpload.NET.FileDownload fileDownload = new DEXTUpload.NET.FileDownload())
{
Response.AddHeader("Content-Disposition", ContentDisposition + FileName);
Response.AddHeader("Content-Length", FileSize.ToString());
Response.ContentType = ContentType;
Response.CacheControl = "public";

fileDownload.DownloadBlob(dataReader, 2);
}
}
}
¡¦
 
 
 
ȸ»ç¼Ò°³ | °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§ | Á¦ÈÞ¹®ÀÇ | ±¤°í¹®ÀÇ | E-Mail ¹«´Ü¼öÁý°ÅºÎ | °í°´Áö¿ø | ÀÌ¿ë¾È³» | ¼¼±Ý°è»ê¼­
µ¥ºêÇÇ¾Æ »çÀÌÆ®·Î À̵¿  
°øÁ¤°Å·¡À§¿øÈ¸ °í½Ã Á¦ 2000-1È£¿¡ µû¸¥ »ç¾÷ÀÚµî·Ï¹øÈ£ ¾È³»: 220-81-90008
´ëÇ¥: È«¿µÁØ / 135-895, ¼­¿ï½Ã °­³²±¸ ½Å»çµ¿ 630-7¹øÁö HBCÄÚ¿À·Õºôµù 4Ãþ
  Copyright ¨Ï (ÁÖ)µ¥ºêÇǾÆ. All rights reserved.