
![]() |
Show Changes |
![]() |
|
![]() |
Recent Changes |
![]() |
Subscriptions |
![]() |
Lost and Found |
![]() |
Find References |
![]() |
Rename |
![]() |
Administration Page |
| Search |
History
| 1/24/2008 9:14:33 AM |
| FLWCOM-jwdavidson |
| 1/24/2008 9:13:32 AM |
| FLWCOM-jwdavidson |
| 10/4/2007 5:28:28 PM |
| -60.218.98.94 |
| 6/12/2006 1:34:24 AM |
| -83.247.59.242 |
| 5/29/2006 9:45:11 PM |
| -203.129.207.185 |
![]() |
List all versions |
Another version: I've created another version here: WikiUploadPageV2 -- JustinCollum, 1 Sep 04
<%@ Page language="c#" AutoEventWireUp="false" Codebehind="upload.aspx.cs" Inherits="FileUpload.WebForm1" Src="upload.aspx.cs" %>
<HTML>
<HEAD>
<%= >
<td>
<asp:Label id="lblText2" runat="server" Font-Bold="True" Visible="false"> </asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label id="lblText3" runat="server" Font-Bold="True" Visible="false"> </asp:Label>
</td>
<td>
<asp:Label id="lblText4" runat="server" Font-Bold="True" Visible="false"> </asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Image id="imgFile" runat="server" Visible="False"></asp:Image>
</TD>
<td>
</td>
</TR>
</TABLE>
<hr>
<p>Back to <a href="default.aspx/MyWiki.HomePage">HomePage</a></p>
</FORM>
</body>
</HTML>
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Text.RegularExpressions;
namespace FileUpload
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected Label lblFile;
protected HtmlInputFile filMyFile;
protected System.Web.UI.WebControls.Label lblInfo;
protected System.Web.UI.WebControls.Button cmdSend;
protected System.Web.UI.WebControls.Image imgFile;
protected System.Web.UI.WebControls.Label lblText1;
protected System.Web.UI.WebControls.Label lblText2;
protected System.Web.UI.WebControls.Label lblText3;
protected System.Web.UI.WebControls.Label lblText4;
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.cmdSend.Click += new System.EventHandler(this.cmdSend_Click);
}
private void Page_Load(object sender, System.EventArgs e)
{
}
// Processes click on our cmdSend button
private void cmdSend_Click(object sender, System.EventArgs e)
{
// Check to see if file was uploaded
if( filMyFile.PostedFile != null )
{
// Get a reference to PostedFile object
HttpPostedFile myFile = filMyFile.PostedFile;
// Get size of uploaded file
int nFileLen = myFile.ContentLength;
// make sure the size of the file is > 0
if( nFileLen > 0 )
{
// Allocate a buffer for reading of the file
byte[] myData = new byte[nFileLen];
string strDirectoryToWriteTo;
string strWriteToFile;
string strFilename;
// Read uploaded file from the Stream
myFile.InputStream.Read(myData, 0, nFileLen);
strDirectoryToWriteTo = ReturnDirectoryToWriteTo(myFile.FileName);
// Create a name for the file to store
strFilename = Path.GetFileName(myFile.FileName); //
// Write data into a file
strWriteToFile = Server.MapPath(strFilename);
// Get the current virtual directory, mapped to a path
strWriteToFile = Server.MapPath("") + "\\" + strDirectoryToWriteTo + "\\" + strFilename;
WriteToFile(strWriteToFile, ref myData);
// Set label's text
lblInfo.Text =
"Filename: " + strFilename + "<br>" +
"Size: " + nFileLen.ToString() + "<p>";
// Set URL of the the object to point to the file we've just saved
if (IsImageFile(strWriteToFile))
{
lblText1.Text = "File available at:<br>";
lblText1.Visible = true;
imgFile.ImageUrl = RootUrl(Request) + strDirectoryToWriteTo + "/" + OnlyFileName(strWriteToFile);
imgFile.ToolTip = "This file was stored as file.";
lblText3.Text = imgFile.ImageUrl;
// show the images and text
imgFile.Visible = true;
lblText3.Visible = true;
}
else
{
lblText1.Text = "File available at:<br>";
lblText1.Visible = true;
lblText3.Text = RootUrl(Request) + strDirectoryToWriteTo + "/" + OnlyFileName(strWriteToFile);
lblText3.Visible = true;
}
lblInfo.Visible = true;
testje:;
}
}
}
private static bool IsImageFile(string strFullPath)
{
bool blnIsImage = false;
strFullPath = strFullPath.ToUpper();
if ((strFullPath.IndexOf(".JPG") > 0) || (strFullPath.IndexOf(".GIF") > 0) || (strFullPath.IndexOf(".PNG")>0) || (strFullPath.IndexOf(".BMP") > 0))
{
blnIsImage = true;
}
return blnIsImage;
}
private static string OnlyFileName (string strFullPath)
{
string strImageFileName;
int intLastIndex;
intLastIndex = strFullPath.LastIndexOf("\\")+1;
strImageFileName = strFullPath.Substring(intLastIndex,strFullPath.Length-intLastIndex);
return strImageFileName;
}
public static String Replace(String strText,String strFind,String
strReplace)
{
int iPos=strText.IndexOf(strFind);
String strReturn="";
while(iPos!=-1)
{
strReturn+=strText.Substring(0,iPos) + strReplace;
strText=strText.Substring(iPos+strFind.Length);
iPos=strText.IndexOf(strFind);
}
if(strText.Length>0)
strReturn+=strText;
return strReturn;
}
// Writes file to current folder
private void WriteToFile(string strPath, ref byte[] Buffer)
{
// Create a file
//Response.Write (strPath);
FileStream newFile = new FileStream(strPath, FileMode.Create);
// Write data to the file
newFile.Write(Buffer, 0, Buffer.Length);
// Close file
newFile.Close();
}
// Generates database connection string
private string ReturnDirectoryToWriteTo(string strFileName)
{
string strReturnDirectory;
strReturnDirectory = "";
strFileName = strFileName.ToUpper();
if ((strFileName.EndsWith(".JPG"))||(strFileName.EndsWith(".GIF")) || (strFileName.EndsWith(".PNG")) || (strFileName.EndsWith(".BMP")))
{
strReturnDirectory="images";
}
else if ((strFileName.EndsWith(".HTM"))||(strFileName.EndsWith(".HTML")))
{
strReturnDirectory="html";
}
else if (strFileName.EndsWith(".DOC"))
{
strReturnDirectory="doc";
}
else
{
strReturnDirectory="files";
}
return strReturnDirectory;
}
// Reads the name of current web page
private string GetMyName()
{
// Get the script name
string strScript = Request.ServerVariables["SCRIPT_NAME"];
// Get position of last slash
int nPos = strScript.LastIndexOf("/");
// Get everything after slash
if( nPos > -1 )
strScript = strScript.Substring(nPos + 1);
return strScript;
}
// Reads the servername of current webserver
private string GetMyServerName()
{
// Get the script name
string strServer = Request.ServerVariables["SERVER_NAME"];
// Get position of last slash
int nPos = strServer.LastIndexOf("/");
// Get everything after slash
if( nPos > -1 )
strServer = strServer.Substring(nPos + 1);
return strServer;
}
protected string InsertStylesheetReferences()
{
string answer = "<LINK href='" + RootUrl(Request) + "wiki.css' type='text/css' rel='stylesheet'>";
return answer;
}
protected string RootUrl(HttpRequest req)
{
string full = req.Url.ToString();
if (req.Url.Query != null && req.Url.Query.Length > 0)
{
full = full.Substring(0, full.Length - req.Url.Query.Length);
}
if (req.PathInfo != null && req.PathInfo.Length > 0)
{
full = full.Substring(0, full.Length - (req.PathInfo.Length + 1));
}
full = full.Substring(0, full.LastIndexOf('/') + 1);
return full;
}
}
}
Now you still have to adapt the rights on the directory level, so that the ASPNET account is able to write to the directories "images" , "html", "doc", "files".
The upload script will have a default filesize limit of 4096 KB or less (see this Microsoft Knowledgebase article ) To change this, put the following parameter in the Web.config file:
Under the line:
<compilation defaultLanguage="c#" debug="true" />
put the following line:
<httpRuntime maxRequestLength="100000"/>
This will set the maximum upload limit to 100000 KB (100 MB).
Back to HomePage