<form action="http://s0.filesonic.com/abc" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" />
<button type="submit">submit</button>
</form>
上面的代码将文件上传到文件sonic服务器,但我想使用C#以编程方式执行此操作,基本上我的要求是程序创建表单和文件控件并将文件发送到操作中提到的Filesonic服务器URL属性..
我已经通过了许多链接,但没有成功,我已经通过以下链接但没有成功。
使用HTTPWebrequest上传文件(multipart / form-data)
答案 0 :(得分:2)
以下代码会将文件上传到服务器,只要服务器可以在files []数组之外接受它。
WebRequest webRequest = WebRequest.Create("http://s0.filesonic.com/abc");
FileStream reader = new FileStream("file_to_upload", FileMode.Open);
byte[] data = new byte[reader.Length];
webRequest.Method = "POST";
webRequest.ContentType = "multipart/form-data";
webRequest.ContentLength = reader.Length;
webRequest.AllowWriteStreamBuffering = "true";
reader.Read(data, 0, reader.Length);
using (var request = webRequest.GetRequestStream())
{
request.Write(data, 0, data.Length);
using (var response = webRequest.GetResponse())
{
//Do something with response if needed
}
答案 1 :(得分:0)
在这种情况下,您对表单的操作将指向您的asp.net服务器上的您自己的页面。您将使用http将文件发回到您的asp.net服务器,然后将其保存在内存中或将其写入临时目录,然后您可以将HttpWebRequest发送到文件服务器。
在您的情况下,您也可以使用HttpWebRequest直接形成帖子,我可以找到的快速示例是here
答案 2 :(得分:0)
您可以使用FTP凭据将文件上传到服务器 这里,path表示您的本地文件路径或源文件&amp; DestinationPath是您必须上传文件Ex的服务器路径。的 'www ..... COM /上传/ xxx.txt'
FtpWebRequest reqObj = (FtpWebRequest) WebRequest.Create(DestinationPath);
reqObj.Method = WebRequestMethods.Ftp.UploadFile;
reqObj.Credentials = new NetworkCredential(FTP_USERNAME, FTP_PASSWORD);
byte[] fileContents = File.ReadAllBytes(path);
reqObj.ContentLength = fileContents.Length;
Stream requestStream = reqObj.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)reqObj.GetResponse();
response.Close();