社区
Windows客户端开发
帖子详情
那位做过移动Web应用程序,小弟请教一下手机终端上传附件到服务器是怎么解决的?请给点页面和后台代码
qwx99
2006-06-05 10:39:55
那位做过移动Web应用程序,小弟请教一下手机终端上传附件到服务器是怎么解决的?请给点页面和后台代码
...全文
424
10
打赏
收藏
那位做过移动Web应用程序,小弟请教一下手机终端上传附件到服务器是怎么解决的?请给点页面和后台代码
那位做过移动Web应用程序,小弟请教一下手机终端上传附件到服务器是怎么解决的?请给点页面和后台代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
skyherocn
2006-10-01
打赏
举报
回复
今天终于看到了这个代码了~~
redfox105
2006-09-15
打赏
举报
回复
给个例子参考(桌面的,移动的也可以参照这个方式)
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
using System.Collections;
namespace Torch.DotNet
{
/// <summary>
/// CreateFormData 的摘要说明。
/// </summary>
public class CreateFormData
{
Encoding encoding = Encoding.UTF8;
public CreateFormData()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region 类属性
public string ContentType
{
get
{
if (HttpContext.Current == null)
{
return "multipart/form-data; boundary=---------------------------7d5b915500ceetorch";
}
return HttpContext.Current.Request.ContentType;
}
}
public string Boundary
{
get
{
string contentType = ContentType;
string[] bArray,ctArray;
ctArray = contentType.Split(';');
if (ctArray[0].Trim().ToLower() == "multipart/form-data")
{
bArray = ctArray[1].Split('=');
return "--"+bArray[1];
}
return null;
}
}
#endregion
/// <summary>
/// 获取表单域的二进制数据
/// </summary>
/// <param name="fieldName">表单域名称</param>
/// <param name="fieldValue">表单域的值</param>
/// <returns>二进制数组</returns>
public byte[] CreateFieldData(string fieldName,string fieldValue)
{
string textTemplate = Boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}\r\n";
string text = String.Format(textTemplate, fieldName, fieldValue);
byte[] bytes = encoding.GetBytes(text);
return bytes;
}
/// <summary>
/// 获取表单文件上传域的二进制数组
/// </summary>
/// <param name="fieldName">表单域名称</param>
/// <param name="filename">文件名称</param>
/// <param name="contentType">文件类型</param>
/// <param name="fileBytes">文件流</param>
/// <returns>二进制数组</returns>
public byte[] CreateFieldData(string fieldName, string filename,string contentType, byte[] fileBytes)
{
string end = "\r\n";
string textTemplate = Boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n";
// 头数据
string data = String.Format(textTemplate, fieldName, filename, contentType);
byte[] bytes = encoding.GetBytes(data);
// 尾数据
byte[] endBytes = encoding.GetBytes(end);
// 合成后的数组
byte[] fieldData = new byte[bytes.Length + fileBytes.Length + endBytes.Length];
bytes.CopyTo(fieldData, 0); // 头数据
fileBytes.CopyTo(fieldData, bytes.Length); // 文件的二进制数据
endBytes.CopyTo(fieldData, bytes.Length + fileBytes.Length); // \r\n
return fieldData;
}
/// <summary>
/// 拼接所有的二进制数组为一个数组
/// </summary>
/// <param name="byteArrays">数组</param>
/// <returns></returns>
/// <remarks>加上结束边界</remarks>
public byte[] JoinBytes(ArrayList byteArrays)
{
int length = 0;
int readLength = 0;
// 加上结束边界
string endBoundary = Boundary + "--\r\n"; //结束边界
byte[] endBoundaryBytes = encoding.GetBytes(endBoundary);
byteArrays.Add(endBoundaryBytes);
foreach(byte[] b in byteArrays)
{
length += b.Length;
}
byte[] bytes = new byte[length];
// 遍历复制
//
foreach(byte[] b in byteArrays)
{
b.CopyTo(bytes, readLength);
readLength += b.Length;
}
return bytes;
}
/// <summary>
/// 上传数据
/// </summary>
/// <param name="uploadUrl"></param>
/// <param name="bytes"></param>
/// <param name="responseBytes"></param>
/// <returns>上传是否成功</returns>
public bool UploadData(string uploadUrl, byte[] bytes, out byte[] responseBytes)
{
WebClient webClient = new WebClient();
webClient.Headers.Add("Content-Type", ContentType);
try
{
responseBytes = webClient.UploadData(uploadUrl, bytes);
return true;
}
catch (WebException ex)
{
Stream resp = ex.Response.GetResponseStream();
responseBytes = new byte[ex.Response.ContentLength];
resp.Read(responseBytes, 0, responseBytes.Length);
}
return false;
}
}
}
redfox105
2006-09-15
打赏
举报
回复
可以模拟桌面PC浏览器,
自己构造一个请求,模拟浏览器把附件发到服务器去
xwy1982
2006-06-26
打赏
举报
回复
up
flysky913
2006-06-07
打赏
举报
回复
是的啊,我也正为这个问题郁闷啊。高手过来指点一下!
qwx99
2006-06-06
打赏
举报
回复
大家帮忙顶一下
qwx99
2006-06-05
打赏
举报
回复
各位前辈大侠 帮帮忙!!
lengyubing_1983
2006-06-05
打赏
举报
回复
我也想学习一下
shixin1198
2006-06-05
打赏
举报
回复
没做过 帮你顶 算了 我也想学习!
qwx99
2006-06-05
打赏
举报
回复
高手来看看
QT HTTP Web Server
服务器
编程实践
本课程使用TTS语音播报和视频合成技术生成,课程风格可能和讲师亲自讲解的课程有一些不同。
请
试学之后再决定是否购买本课程。 本课程重
点
关注如何使用 QT HttpServer组件开发轻量级Http Web Server
服务器
应用程序
。...
java
后台
+微信小程序 实现完整的
点
餐系统
后台
技术选型: JDK8 MySQL Spring-boot Spring-data-jpa Lombok Freemarker Bootstrap Websocket 小程序端技术选型 微信小程序 小程序端 扫码
点
餐 菜品分类显示 模拟支付 评论系统 购物车
电商小程序、商城小程序、超市小程序,小程序+web
后台
一块讲解的,带你
小程序+web端管理
后台
一块讲解、技术路线:小程序+JavaScript+html+css+云开发+云数据库+云存储,小程序登录、授权、注册、用户管理、查看商品、推荐商品、上架商品、下架商品、设置为推荐、编辑修改商品、查看商品...
莫凡图书商城-微信小程序企业应用实战精讲
(1)本套视频教程属于微信小程序企业实战最新内容精讲视频,没有废话;由《微信小程序简明开发教程 第二版》作者 小刚老师亲自录制; (2)本套课程视频后续会出配套书籍《微信小程序开发项目教程》; (3)本套...
WebApi Vuejs 2020 网站
后台
管理系统接口开发实战视频教程
WebAPI 是一种用来开发系统间接口、设备接口 API 的技术,... 本教程将通过一个网站
后台
管理模块接口处理,让大家了解
服务器
端WebApi接口开发实现过程,并在实际操作中掌握WebApi编程模式的一些重要知识
点
及开发技巧。
Windows客户端开发
7,657
社区成员
18,845
社区内容
发帖
与我相关
我的任务
Windows客户端开发
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
复制链接
扫一扫
分享
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章