在服务器上上传文件 [英] upload file on server
本文介绍了在服务器上上传文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好
我正在尝试使用以下代码上传文件:
Hello
I am trying to upload a file using this code :
static void UploadFile()
{
string dataBoundary = "--xyz";
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(serverUrl);
webRequest.ContentType = "multipart/form-data; boundary=" + dataBoundary;
webRequest.Method = "POST";
string datasourceStr = String.Format(
"--{0}\r\n"
+ "Content-Disposition: form-data; name=\"datasource\"; name=\"files\"\r\n"
+ "Content-Type: application/octet-stream\r\n"
+ "\r\n",
dataBoundary, "sample");
string feedtypeStr = String.Format(
"--{0}\r\n"
+ "Content-Disposition: form-data; name=\"feedtype\"; name=\"files\"\r\n"
+ "Content-Type: application/octet-stream\r\n"
+ "\r\n",
dataBoundary, "full");
string fileStr = String.Format(
"--{0}\r\n"
+ "Content-Disposition: form-data; name=\"data\"; filename=\"C:\\content.txt\"\r\n"
+ "Content-Type: application/octet-stream\r\n"
+ "\r\n",
dataBoundary, @"C:\content.txt");
// Get the total form post size
string totalString = datasourceStr + feedtypeStr + fileStr;
/*
byte[] datasourceBytes = Encoding.Default.GetBytes(datasourceStr);
byte[] feedtypeBytes = Encoding.Default.GetBytes(feedtypeStr);
byte[] fileBytes = Encoding.Default.GetBytes(fileStr);
int totalBytes = datasourceBytes.Length + feedtypeBytes.Length + fileStr.Length;
*/
byte[] totalBytes = Encoding.Default.GetBytes(totalString);
webRequest.ContentLength = totalBytes.Length;
// Send the data
Stream webStream = webRequest.GetRequestStream();
/* webStream.Write(datasourceBytes, 0, datasourceBytes.Length);
webStream.Write(feedtypeBytes, 0, feedtypeBytes.Length);
webStream.Write(fileBytes, 0, fileStr.Length);
*/
webStream.Write(totalBytes, 0, totalBytes.Length);
webStream.Close();
// Read the response
HttpWebResponse res = (HttpWebResponse)webRequest.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.Default);
string backstr = sr.ReadToEnd();
Console.Write(backstr);
sr.Close();
res.Close();
}
但是它在代码
中给出了例外
HttpWebResponse res = (HttpWebResponse)webRequest.GetResponse();
如:
远程服务器返回错误:(405)不允许使用方法.
谢谢
But its giving exception at code
HttpWebResponse res = (HttpWebResponse)webRequest.GetResponse();
as:
The remote server returned an error: (405) Method Not Allowed.
Thanks
推荐答案
这应该可以帮助您 HTTP错误405方法不正确允许 [^ ]
顺便说一句,这是google上的首个热门游戏
(405)不允许使用方法 [
This should help you out HTTP Error 405 Method not allowed[^]
Btw, that is the first hit on google
(405) Method Not Allowed[^]
这篇关于在服务器上上传文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文