上传文件windows窗体C#web服务
我是新来的 请帮帮我 我正在使用web服务并上传文件 这是我上传文件的代码上传文件windows窗体C#web服务,c#,web-services,file-upload,webclient,C#,Web Services,File Upload,Webclient,我是新来的 请帮帮我 我正在使用web服务并上传文件 这是我上传文件的代码 private void Button_Click(object sender, RoutedEventArgs e) { testServiceClient = new TestServiceClient(); var uploadFile = "C:\\Computer1\\Sample.csv"; try {
private void Button_Click(object sender, RoutedEventArgs e)
{
testServiceClient = new TestServiceClient();
var uploadFile = "C:\\Computer1\\Sample.csv";
try
{
var dir = @"\\Computer2\UploadedFile\";
string myUploadPath = dir;
var myFileName = Path.GetFileName(uploadFile);
var client = new WebClient { Credentials = CredentialCache.DefaultNetworkCredentials };
client.UploadFile(myUploadPath + myFileName, "PUT", uploadFile);
client.Dispose();
MessageBox.Show("ok");
testServiceClient.Close();
}
catch (Exception ex)
{
ex.ToString();
}
}
我可以在同一个网络上传文件,但我的问题是
当两台计算机不在同一网络中时,如何上载文件
我已经试着换了衣服
var dir = @"\\Computer2\UploadedFile\";
到
但我收到一个错误“无法连接到远程服务器”
请帮帮我。我认为问题在于,您实际上并不是使用
UploadFile()方法发送文件,而是发送文件路径。您应该发送文件字节
此链接非常有用:我认为问题在于,您实际上并不是使用UploadFile()方法发送文件,而是发送文件路径。您应该发送文件字节
此链接非常有用:在windows中:
private void uploadButton_Click(object sender, EventArgs e)
{
var openFileDialog = new OpenFileDialog();
var dialogResult = openFileDialog.ShowDialog();
if (dialogResult != DialogResult.OK) return;
Upload(openFileDialog.FileName);
}
private void Upload(string fileName)
{
var client = new WebClient();
var uri = new Uri("https://Computer2/UploadedFile/");
try
{
client.Headers.Add("fileName", System.IO.Path.GetFileName(fileName));
var data = System.IO.File.ReadAllBytes(fileName);
client.UploadDataAsync(uri, data);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
在服务器中:
[HttpPost]
public async Task<object> UploadedFile()
{
var file = await Request.Content.ReadAsByteArrayAsync();
var fileName = Request.Headers.GetValues("fileName").FirstOrDefault();
var filePath = "/upload/files/";
try
{
File.WriteAllBytes(HttpContext.Current.Server.MapPath(filePath) + fileName, file);
}
catch (Exception ex)
{
// ignored
}
return null;
}
[HttpPost]
公共异步任务UploadedFile()
{
var file=wait Request.Content.ReadAsByteArrayAsync();
var fileName=Request.Headers.GetValues(“fileName”).FirstOrDefault();
var filePath=“/upload/files/”;
尝试
{
File.writealBytes(HttpContext.Current.Server.MapPath(filePath)+文件名,文件);
}
捕获(例外情况除外)
{
//忽略
}
返回null;
}
在windows中:
private void uploadButton_Click(object sender, EventArgs e)
{
var openFileDialog = new OpenFileDialog();
var dialogResult = openFileDialog.ShowDialog();
if (dialogResult != DialogResult.OK) return;
Upload(openFileDialog.FileName);
}
private void Upload(string fileName)
{
var client = new WebClient();
var uri = new Uri("https://Computer2/UploadedFile/");
try
{
client.Headers.Add("fileName", System.IO.Path.GetFileName(fileName));
var data = System.IO.File.ReadAllBytes(fileName);
client.UploadDataAsync(uri, data);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
在服务器中:
[HttpPost]
public async Task<object> UploadedFile()
{
var file = await Request.Content.ReadAsByteArrayAsync();
var fileName = Request.Headers.GetValues("fileName").FirstOrDefault();
var filePath = "/upload/files/";
try
{
File.WriteAllBytes(HttpContext.Current.Server.MapPath(filePath) + fileName, file);
}
catch (Exception ex)
{
// ignored
}
return null;
}
[HttpPost]
公共异步任务UploadedFile()
{
var file=wait Request.Content.ReadAsByteArrayAsync();
var fileName=Request.Headers.GetValues(“fileName”).FirstOrDefault();
var filePath=“/upload/files/”;
尝试
{
File.writealBytes(HttpContext.Current.Server.MapPath(filePath)+文件名,文件);
}
捕获(例外情况除外)
{
//忽略
}
返回null;
}
我可以在网络中上传文件,但当我将目录更改为http时,我无法上传…因为在网络上可以通过网络查看文件。。。因此,您必须直接发送文件的字节。我可以在网络中上载文件,但当我将目录更改为http时,我不能…因为在网络上可以通过网络查看文件。。。因此,您必须直接发送文件的字节。