C#使用webservice把文件上传到服务器的代码如下(这里以C:\\zhidao.jpg这个文件上传为例):
WebService部分:
///
/// 保存文件到远程服务器
///
/// 待转换字节数组
/// 字节长度
/// 保存路径
///返回是否执行成功
[WebMethod(Description = "保存文件到远程服务器.")]
public bool SaveFile(byte[] FileByteArray,int FileLength, string SaveToUrl)
{
try
{
FileStream fs = new FileStream(SaveToUrl, FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(FileByteArray, 0, FileLength);
fs.Close();
}
catch {
return false;
}
return true;
}
上传文件调用部分:
protected void Button1_Click(object sender, EventArgs e)
{
MangerPhoto.Service mp = new MangerPhoto.Service();
Response.Write(mp.SaveFile(getByte(), FileUpload1.PostedFile.ContentLength, "C:\\zhidao.jpg"));
} private byte[] getByte() {//获得转化后的字节数组
//得到用户要上传的文件名
string strFilePathName = FileUpload1.PostedFile.FileName;
string strFileName = Path.GetFileName(strFilePathName);
int FileLength = FileUpload1.PostedFile.ContentLength;
//上传文件
Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组
Stream StreamObject = FileUpload1.PostedFile.InputStream; //建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObject.Read(FileByteArray, 0, FileLength);
return FileByteArray;
}
存放程序里面的存放路径要为绝对路径。不能用相对路径。
使用二进制流的模式长传保存