我使用this example,我的代码是
private void dialogBtn_Click(object sender, EventArgs e)
{
string file;
DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
if (result == DialogResult.OK) // Test result.
{
file = openFileDialog1.FileName;
System.IO.FileInfo fileInfo = new System.IO.FileInfo(file);
TransferServiceClient clientUpload = new TransferServiceClient();
RemoteFileInfo uploadRequestInfo = new RemoteFileInfo();
using (System.IO.FileStream stream = new System.IO.FileStream(file, System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
uploadRequestInfo.FileName = file;
uploadRequestInfo.Length = fileInfo.Length;
uploadRequestInfo.FileByteStream = stream;
//clientUpload.UploadFile(uploadRequestInfo);
clientUpload.UploadFile(fileInfo.Name, fileInfo.Length, stream);
}
}
}
在clientUpload.UploadFile(fileInfo.Name, fileInfo.Length, stream);
我收到错误
mscorlib.dll中发生了'System.ServiceModel.FaultException`1'类型的未处理异常 附加信息:找不到路径'C:\ upload \ Book1.xlsx'的一部分。
但是,Book1.xlsx不在上传文件夹中。它在桌面上。
答案 0 :(得分:1)
嗯,示例中UploadFile
方法的服务实现如下:
public void UploadFile(RemoteFileInfo request)
{
FileStream targetStream = null;
Stream sourceStream = request.FileByteStream;
string uploadFolder = @"C:\upload\";
string filePath = Path.Combine(uploadFolder, request.FileName);
using (targetStream = new FileStream(filePath, FileMode.Create,
FileAccess.Write, FileShare.None))
{
//read from the input stream in 65000 byte chunks
const int bufferLen = 65000;
byte[] buffer = new byte[bufferLen];
int count = 0;
while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0)
{
// save to output stream
targetStream.Write(buffer, 0, count);
}
targetStream.Close();
sourceStream.Close();
}
}
注意这一行
string uploadFolder = @"C:\upload\";
您需要将其更改为您希望上传文件存储的现有文件夹。