<asp:FileUpload ID="fileUpload" runat="server" Width="350px" />
<br />
<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload File" />
<br />
<asp:Label ID="lblFileUpload" runat="server"></asp:Label>
protected void btnUpload_Click(object sender, EventArgs e)
{
string sharePointServer = ConfigurationManager.AppSettings["SharePointServer"].ToString();
string uploadedFilePath = @"C:\\";
string sharePointListPath = "http://" + sharePointServer + "InfoWorld/IT/ITTech/eForm%20Document%20Attachments";
if (fileUpload.HasFile)
try
{
fileUpload.SaveAs(
uploadedFilePath + fileUpload.FileName);
lblFileUpload.Text = "File name: " +
fileUpload.PostedFile.FileName + "<br />" +
fileUpload.PostedFile.ContentLength + " bytes<br />" +
"Content type: " +
fileUpload.PostedFile.ContentType;
UploadFileToSharePoint(
uploadedFilePath + fileUpload.FileName,
sharePointListPath + fileUpload.FileName);
}
catch (Exception ex)
{
lblFileUpload.Text = "ERROR: " + ex.Message.ToString();
}
else
{
lblFileUpload.Text = "You have not specified a file.";
}
}
protected void UploadFileToSharePoint(string UploadedFilePath,
string SharePointPath)
{
WebResponse response = null;
try
{
// Create a PUT Web request to upload the file.
WebRequest request = WebRequest.Create(SharePointPath);
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "PUT";
// Allocate a 1 KB buffer to transfer the file contents.
// You can adjust the buffer size as needed, depending on
// the number and size of files being uploaded.
byte[] buffer = new byte[4096];// 4 mb file limit.
// Write the contents of the local file to the
// request stream.
using (Stream stream = request.GetRequestStream())
using (FileStream fsWorkbook = File.Open(UploadedFilePath,
FileMode.Open, FileAccess.Read))
{
int i = fsWorkbook.Read(buffer, 0, buffer.Length);
while (i > 0)
{
stream.Write(buffer, 0, i);
i = fsWorkbook.Read(buffer, 0, buffer.Length);
}
}
// Make the PUT request.
response = request.GetResponse();
}
catch (Exception ex)
{
throw ex;
}
finally
{
response.Close();
}
}
|