下面的是我写的实现本地上传代码,有没有高人指点下实现异地上传该怎么写
protected void Add_Bt_Click(object sender, EventArgs e)
{
int len = 0;
// FileStr = Server.MapPath("/AdminWebJxt4.0/uploadfile/officefile/");//虚拟路径
FileStr = "~/uploadfile/officefile/";
// FileStr = "/uploadfile/officefile/";
NewFile = "";
NewFile = userid_hf.Value.ToString() + DateTime.Now.ToString("yyyymmddhhmmss").ToString();//文件新名
fileexi = "";
OldFile = ""; OldFile = this.FileUpload1.FileName;//原文件名
Oldfile_hf.Value = OldFile;
if (OldFileList == "")
{
OldFileList = this.FileUpload1.FileName;//原文件名串
OldFileList1 = this.FileUpload1.FileName; }
else
{
OldFileList = OldFileList + "|" + this.FileUpload1.FileName;//原文件名串 OldFileList1 = OldFileList1 + "<br>" + this.FileUpload1.FileName; }
len = OldFile.IndexOf('.');
//fileexi = OldFile.Substring(len, OldFile.Length - OldFile.IndexOf('.'));//文件扩展名 fileexi = OldFile.Substring(OldFile.Length - 3).ToString(); NewFile = NewFile + "." + fileexi;
if (NewFileList == "")
{
NewFileList = NewFile;//原文件名串 }
else
{
NewFileList = NewFileList + "|" + NewFile;//原文件名串 } string uploadfileurl = "";
uploadfileurl = FileStr + NewFile;
string mPath = Server.MapPath(FileStr); if (fileexi != ".asp" && fileexi != ".jsp" && fileexi != ".php")
{
FileUpload1.PostedFile.SaveAs(@mPath + NewFile);//上传
// FileUpload1.PostedFile.
this.lblfilelist.Text = OldFileList1.ToString(); }
else
{
Response.Write("<script language='javascript'>alert('对不起!此文件不能上传');history.go(-1);</script>");
}
}
protected void Add_Bt_Click(object sender, EventArgs e)
{
int len = 0;
// FileStr = Server.MapPath("/AdminWebJxt4.0/uploadfile/officefile/");//虚拟路径
FileStr = "~/uploadfile/officefile/";
// FileStr = "/uploadfile/officefile/";
NewFile = "";
NewFile = userid_hf.Value.ToString() + DateTime.Now.ToString("yyyymmddhhmmss").ToString();//文件新名
fileexi = "";
OldFile = ""; OldFile = this.FileUpload1.FileName;//原文件名
Oldfile_hf.Value = OldFile;
if (OldFileList == "")
{
OldFileList = this.FileUpload1.FileName;//原文件名串
OldFileList1 = this.FileUpload1.FileName; }
else
{
OldFileList = OldFileList + "|" + this.FileUpload1.FileName;//原文件名串 OldFileList1 = OldFileList1 + "<br>" + this.FileUpload1.FileName; }
len = OldFile.IndexOf('.');
//fileexi = OldFile.Substring(len, OldFile.Length - OldFile.IndexOf('.'));//文件扩展名 fileexi = OldFile.Substring(OldFile.Length - 3).ToString(); NewFile = NewFile + "." + fileexi;
if (NewFileList == "")
{
NewFileList = NewFile;//原文件名串 }
else
{
NewFileList = NewFileList + "|" + NewFile;//原文件名串 } string uploadfileurl = "";
uploadfileurl = FileStr + NewFile;
string mPath = Server.MapPath(FileStr); if (fileexi != ".asp" && fileexi != ".jsp" && fileexi != ".php")
{
FileUpload1.PostedFile.SaveAs(@mPath + NewFile);//上传
// FileUpload1.PostedFile.
this.lblfilelist.Text = OldFileList1.ToString(); }
else
{
Response.Write("<script language='javascript'>alert('对不起!此文件不能上传');history.go(-1);</script>");
}
}
解决方案 »
- 新手提问!怎么样用javascript实现转到图片的相对路径位置?
- 如何检查动态的DropDownList有没有选择?
- 弹出模式化窗口
- 500分求此问题的答案,关于codesmith实体类生成的问题
- asp.net forums 的数据库是怎么访问的?
- asp.net与vb.net是神马关系呀?
- 一个javascript第一次无效的问题,求解答
- 一个循环的问题
- vs.net2003中,能不能把默认的web设计器改成dw2004的?
- 紧急求助,在线等!!!datagrid模板列中的DropDownList怎么响应事件?(用vb)
- 急,急,弹出窗口问题
- 有谁转到怎么获取Treeview控件的值啊??
请大侠指点下,到底具体的该怎么实现?对FTP ,webclient类不大熟悉 ,不知道该怎么用
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;
using System.Text;namespace eMeng.Exam
{
/// <summary>
/// GetPageHtml 的摘要说明。
/// </summary>
public class GetPageHtml : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button WebClientButton;
protected System.Web.UI.WebControls.Button WebRequestButton;
protected System.Web.UI.WebControls.TextBox ContentHtml;
protected System.Web.UI.WebControls.TextBox UrlText;
private string PageUrl = "";private void Page_Load(object sender, System.EventArgs e)
{}#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.WebClientButton.Click += new System.EventHandler(this.WebClientButton_Click);
this.WebRequestButton.Click += new System.EventHandler(this.WebRequestButton_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregionprivate void WebClientButton_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;///方法一:
Byte[] pageData = wc.DownloadData(PageUrl);
ContentHtml.Text = Encoding.Default.GetString(pageData);/// 方法二:
/// ***************代码开始**********
/// Stream resStream = wc.OpenRead(PageUrl);
/// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default);
/// ContentHtml.Text = sr.ReadToEnd();
/// resStream.Close();
/// **************代码结束********
///
wc.Dispose();
}private void WebRequestButton_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebRequest request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
sr.Close();
}
}
}
{
[STAThread]
static void Main()
{
Application.Run(new Form1());
} /// <summary>
/// .NET SDK 上面的打开文件的类
/// </summary> private FileStream OpenFile()
{
OpenFileDialog dlgOpenFile = new OpenFileDialog();
dlgOpenFile.ShowReadOnly = true;
if(dlgOpenFile.ShowDialog() == DialogResult.OK)
{
if(dlgOpenFile.ReadOnlyChecked == true)
{
return (FileStream)dlgOpenFile.OpenFile(); }
else
{
string path = dlgOpenFile.FileName;
return new FileStream(path, System.IO.FileMode.Open,
System.IO.FileAccess.ReadWrite);
}
}
return null;
} private void button2_Click(object sender, System.EventArgs e)
{
OpenFileDialog dlgOpenFile = new OpenFileDialog();
dlgOpenFile.InitialDirectory = @"C:\";
dlgOpenFile.ShowReadOnly = false;
dlgOpenFile.ReadOnlyChecked = true;
dlgOpenFile.Filter = "所有文件 (*.*)|*.*";
if(dlgOpenFile.ShowDialog() == DialogResult.OK)
{
if(dlgOpenFile.ReadOnlyChecked == true)
{
txtFileName.Text = dlgOpenFile.FileName.ToString();
}
}
} private void button1_Click(object sender, System.EventArgs e)
{
// 需要注意的是:txtServerPath文件夹有匿名可写的权限。
// 可以自己定义新文件名字
if(txtFileName.Text.Trim() == "" || txtServerPath.Text.Trim() == "")
{
MessageBox.Show("请输入你要上载的文件名字!","错误:", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
else
{
/// 得到文件名,文件扩展名字,服务器路径
string fileNamePath = txtFileName.Text.Trim();
string uriString = txtServerPath.Text.Trim();
string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1);
string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
if(uriString.EndsWith("/") == false) uriString = uriString + "/"; uriString = uriString + fileName;
/// 创建WebClient实例
WebClient myWebClient = new WebClient();
myWebClient.Credentials = CredentialCache.DefaultCredentials; // 要上传的文件
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
//FileStream fs = OpenFile();
BinaryReader r = new BinaryReader(fs);
try
{
//使用UploadFile方法可以用下面的格式
//myWebClient.UploadFile(uriString,"PUT",fileNamePath);
byte[] postArray = r.ReadBytes((int)fs.Length);
Stream postStream = myWebClient.OpenWrite(uriString,"PUT");
if(postStream.CanWrite)
{
postStream.Write(postArray,0,postArray.Length);
label1.Text = fileName + "上传成功!";
}
else
{
label1.Text = "文件目前不可写!";
}
postStream.Close();
linkLabel1.Text = "查看上载的文件";
for(int i = linkLabel1.Links.Count - 1;i>-1;i--)
linkLabel1.Links.Remove(linkLabel1.Links[i]);
linkLabel1.Links.Add(0,linkLabel1.Text.Length,uriString);
}
catch(WebException errMsg)
{
label1.Text="上传失败:" + errMsg.Message;
}
}
} private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.linkLabel1.Links[linkLabel1.Links.IndexOf(e.Link)].Visited = true;
string target = e.Link.LinkData as string;
if(null != target)
{
System.Diagnostics.Process.Start(target);
}
else
{
MessageBox.Show("请用浏览器访问:" + target);
}
} private void Form1_Resize(object sender, System.EventArgs e)
{
if(this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal;
} private void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(txtFileName.Text.Trim() != "" && txtServerPath.Text.Trim() != "")
label1.Text = "正在上传文件,请稍侯……!";
}
}
}