winfrom中上传文件保存在webFrom里面
winfrom里面的代码
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text.Trim()))
{
string a = MyUploader(this.textBox1.Text.Trim(), @"http://localhost:63715/Default.aspx"); //这里的路径就是网页路径
MessageBox.Show(a);
}
else
{
MessageBox.Show("请选择需要上传的文件");
} } /// <summary>
/// 文件上传
/// </summary>
/// <param name="strFileToUpload">文件名</param>
/// <param name="strUrl">目标路径</param>
/// <returns>是否成功</returns>
public static string MyUploader(string strFileToUpload, string strUrl)
{
string strFileFormName = "file";
Uri oUri = new Uri(strUrl); //创建一个url请求
//分隔符
string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x");
//转成ascii码
byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n--" + strBoundary + "\r\n");
//使用multipart/form-data请求体格式为(包含文件内容)
//Content-Disposition: form-data; name="fileparam"; filename="test.txt"
//Content-Type: text/plain StringBuilder sb = new StringBuilder();
sb.Append("--");
sb.Append(strBoundary);
sb.Append("\r\n");
sb.Append("Content-Disposition: form-data; name=\"");
sb.Append(strFileFormName);
sb.Append("\"; filename=\"");
sb.Append(Path.GetFileName(strFileToUpload)); //文件名
sb.Append("\"");
sb.Append("\r\n");
sb.Append("Content-Type: ");
sb.Append("application/octet-stream");
sb.Append("\r\n");
sb.Append("\r\n");
string strPostHeader = sb.ToString();
//字符串转成字节
byte[] postHeaderBytes = Encoding.UTF8.GetBytes(strPostHeader);
//post提交
HttpWebRequest oWebrequest = (HttpWebRequest)WebRequest.Create(oUri);//指定url
oWebrequest.ContentType = "multipart/form-data; boundary=" + strBoundary; //固定格式
oWebrequest.Method = "POST";
oWebrequest.AllowWriteStreamBuffering = false; FileStream oFileStream = new FileStream(strFileToUpload, FileMode.Open, FileAccess.Read);
long length = postHeaderBytes.Length + oFileStream.Length + boundaryBytes.Length;
oWebrequest.ContentLength = length;//确定传的长度
Stream oRequestStream = oWebrequest.GetRequestStream();//转成流
oRequestStream.Write(postHeaderBytes, , postHeaderBytes.Length); //checked((uint)Math.Min)
//文件流的长度
byte[] buffer = new Byte[checked((uint)Math.Min(, (int)oFileStream.Length))];
int bytesRead = ;
while ((bytesRead = oFileStream.Read(buffer, , buffer.Length)) != )
oRequestStream.Write(buffer, , bytesRead);
oFileStream.Close(); oRequestStream.Write(boundaryBytes, , boundaryBytes.Length);
WebResponse oWResponse = oWebrequest.GetResponse();
Stream s = oWResponse.GetResponseStream(); //从webfrom中返回的数据
StreamReader sr = new StreamReader(s);
String sReturnString = sr.ReadToEnd();
Console.WriteLine(sReturnString);
//用完关闭
oFileStream.Close();
oRequestStream.Close();
s.Close();
sr.Close();
return sReturnString;
}
webFrom里面的代码
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Files.Count > )
{
try
{
HttpPostedFile file = Request.Files[]; //获取传的文件
string filePath = this.MapPath("FileUpload") + "\\" + file.FileName;
file.SaveAs(filePath);
Response.Write("成功了");
}
catch (Exception)
{
Response.Write("失败了1");
}
}
else
{
Response.Write("失败了2");
} Response.End();
}
winfrom中上传文件保存在webFrom里面的更多相关文章
- vue中上传文件之multipart/form-data
		
首先在项目里用了拦截器的,由于拦截器会将传递的参数转成对象,所以你i提交的时候会发现multipart/form-data或转变成application/json 其次关于input的文件上传是需要一 ...
 - JavaScript中上传文件为图片如何读取+JS中如何使用clip()剪切指定区域(UI组件之图片剪裁器)
		
File读取和FileReader() //获取上传的文件/图片 function getFile(){ var files,len; var reader = new FileReader(); v ...
 - 【解决】AWS服务控制台中上传文件失败
		
使用IE 11,在 AWS Services Console 中不管是 S3 还是 Elastic Beanstalk 的页面中上传页面都会失败,提示信息如下: A problem occurred ...
 - 谈谈php中上传文件的处理
		
这是一个表单的时代... 我们在浏览器中编辑自己的信息,会遇到上传头像:在文库中,我们会上传文档......到处存在“上传”这个词. php是最好的语言(其他语言的程序猿们不要打我...).php在处 ...
 - ASP.Net中上传文件的几种方法
		
在做Web项目时,上传文件是经常会碰到的需求.ASP.Net的WebForm开发模式中,封装了FileUpload控件,可以方便的进行文件上传操作.但有时,你可能不希望使用ASP.Net中的服务器控件 ...
 - 现在,以编程方式在 Electron 中上传文件,是非常简单的!
		
必要的上下文 想尽快熟悉上下文语境的,可以点这里: https://github.com/electron/electron/issues/749 这段讨论,其实本来是讨论如何自动设置 input 标 ...
 - element-ui中上传文件upload
		
<el-upload class="upload-demo" name="targetFile" ref="upload" :with ...
 - Mac/Linux/Centos终端中上传文件到Linux云服务器
		
1.mac上传文件到Linux服务器 scp 文件名 用户名@服务器ip:目标路径 如:scp /Users/test/testFile test@www.linuxidc.com:/test/ ...
 - vue中上传文件相同文件名没反应
		
vue项目中会遇到上传文件的需求,jquery会有一些插件很方便,如果不使用插件网上的方法没有太容易的而且很多是原生JS或者基于jQuery操作dom结构的.那么在vue项目中如何实现呢,还有如何模拟 ...
 
随机推荐
- Win7 IIS 局域网中无法访问网页
			
安装好iis后,在局域网中无法浏览网页一,关闭防火墙即可 或者建立入站规则 打开控制面板——window防火墙——高级设置 在入站规则上右键新建入站规则,选择端口然后下一步 选择tcp和特定端口在端口 ...
 - 垃圾收集GC
			
一.引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是不能再被使用的.引用计数法实现简单,判定效率也很高,但是它很 ...
 - maya2018无法安装卸载激活失败
			
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
 - MySQL设置允许用户远程登录
			
. //登录数据库 mysql -u root -pvmwaremysql>use mysql; //%为所有ip都可以远程访问 mysql>update user set host = ...
 - c# 小数点格式化
			
1.只要求保留N位不四舍5入 float f = 0.55555f; int i =(int)(f * 100); f = (float)(i*1.0)/100 ...
 - Visual Studio 要求导入 pfx 密钥以及导入后依然要求导入的解决办法
			
本文为个人博客备份文章,原文地址: http://validvoid.net/visual-studio-pfx-import/ 导入密钥 在使用 Visual Studio 生产项目时,使用 pfx ...
 - mysql存储过程游标加计划任务事件调度器
			
存储过程加事件调度器 -- 存储过程 (多个)游标的使用 临时表的使用(让执行时间从一个小时降低到5分钟)DELIMITER $$ DROP PROCEDURE IF EXISTS `eval_cal ...
 - poj 1947 树形背包
			
重做这道题 http://blog.csdn.net/woshi250hua/article/details/7632785 http://blog.csdn.net/shuangde800/arti ...
 - POS开发问题 - 输入非数字弹出提示框的实现
			
业务场景: 一个输入框,如果输入非数字,那么弹出提示框,如下图 点击确定,输入框自动清空非数字的输入,并且自动获得焦点,如图: 实现方案: 实现的想法: 给输入框添加一个 input 事件,给输入框绑 ...
 - 谷歌浏览器web worker出现cannot be accessed from origin 'null'错误
			
cannot be accessed from origin 'null'百度翻译是:无法从原点"null"访问 在别的浏览器都可以,而在唯独在谷歌浏览器不行,查找了一些资料原因大 ...