c#文件流上传图片

1、第一步 定义参数

//主表TableA

public class TableA

{

public List<TableB> AccidentImgByte { get; set; }

}

//子表TableB

public class TableB{

public Byte[] AccidentImgflow { get; set; }//文件流

public String AccidentImgName { get; set; }//文件名称

public String AccidentImgExt { get; set; }//文件格式

}

2、接口

public void AccidentImg_Request(TableA tModel){

string VisitImgFile = string.Empty;//图片路径

if (bmModel.AccidentImgByte != null)
{
foreach (var item in tModel.AccidentImgByte)
{
VisitImgFile += AttachmentUrl(item.AccidentImgflow, item.AccidentImgName, item.AccidentImgExt) + ",";

}
if (!String.IsNullOrEmpty(VisitImgFile ))
{
VisitImgFile = VisitImgFile.Substring(0, VisitImgFile.Length - 1);
}
}

}

/// <summary>
/// 图片处理方法
/// </summary>
/// <param name="fileNameAttachment">文件流</param>
/// <param name="fileName">文件名称</param>
/// <param name="fileExt">文件格式</param>
/// <returns></returns>

private String AttachmentUrl(Byte[] fileNameAttachment, string fileName, string fileExt)
{
String aUrl = System.Web.Configuration.WebConfigurationManager.AppSettings["web.config配置上传地址"];//服务器地址,用于返回服务器图片地址组合,如:http://x.x.x/
try
{
//写入目录
string attachmentPath = System.Web.Configuration.WebConfigurationManager.AppSettings["web.config配置上传地址"] + fileName + fileExt;
File.WriteAllBytes(attachmentPath, fileNameAttachment);
aUrl = aUrl + fileName + fileExt;//拼接返回地址 如:http://x.x.x/测试1.jpg
}
catch (Exception ex)
{
HX.BPM.Common.LogWriter.Write("日志", "BaggageMonitorAdd_Request", "行李监控流程发起处理异常", ex.Message);
aUrl = null;
}

return aUrl;
}

3、前端(外部)调用

private void button1_Click(object sender, EventArgs e)
{

TableA ta=new TableA();

ta.AccidentImgByte = new AttModel[2];//定义长度

byte[] aImag = FileContent(@"本地图片路径");

ta.AccidentImgByte[0]=new TableB() {
AccidentImgflow = aImag,
AccidentImgName = "测试1",
AccidentImgExt=".jpg"
};

aImag = FileContent(@"本地图片路径");
ta.AccidentImgByte[1] = new TableB()
{
AccidentImgflow = aImag,
AccidentImgName = "测试2",
AccidentImgExt = ".jpg"
};

var result = AccidentImg_Request(ta);

}

//文件转换成流

private static byte[] FileContent(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
try
{
byte[] buffur = new byte[fs.Length];
fs.Read(buffur, 0, (int)fs.Length);

return buffur;
}
catch (Exception ex)
{
return null;
}
finally
{
if (fs != null)
fs.Close();
}
}

时间: 2024-11-09 02:38:10

c#文件流上传图片的相关文章

iOS Post上传图片, 文件流的形式

最近看到群里很多小伙伴有问上传图片服务器收不到, 解析不了.  可以说就一个属性  ContentType , 不论你使用第三方的AFN, 还是自己封装NSURLSesstion. 都需要把ContentType 设置和后台的解析方式一样(可能术语不是很标准, 总之就这个意思哈,谅解) 下面贴一段AFN的上传图片代码吧, 亲测有效, 不过可能只是针对我的服务器.  只要和后台同学沟通好就行了 //此body是向后台传的参数, 因为是上传图片, 所以只给个图片名就够了, 这个和后台去问 NSDic

android上传图片并附带上传数据,文件流

关于android的图片上传有两种方式,一种是以文件流的方式上传,图片转换成二进制上穿.另一种是把图片转成base64方式上传,这篇博客我只介绍文件流,关于base64方式会在下一篇博客中介绍! 首先是安卓端:图片上传我们需要一个图片的路径,同过调用本地相册或者拍照可以返回图片路径,这个在这里就不说了:假设我们获得图片路径为PicPath; 下面是安卓代码: 首先我们要封装要发送的数据 数据封装好了以后用String path=URLEncodedUtils.format(Parameters,

JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录

JAVA之旅(三十三)--TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Socket和ServiceSocket 建立客户端和服务端 建立连接后,通过Socket中的IO流进行数据的传输 关闭Socket 同样的,我们的客户端和服务端都是两个独立的应用 我们通过查阅API文档发现,该对象在建立的时候,就可以去连接指定主机,因为tcp是面向连接的,所以在建立socket服务时,

文件流数组上传到七牛云

首先要注册七牛云,申请个空间,获得密钥.等东西,引入官方sdk包,然后再开发文档中找到代码copy进去就可以了. 因为非常简单,我就直接弄上代码了. 1 package com.qianmo.foru.bean.request; 2 3 import com.qianmo.core.common.CommonRequest; 4 import org.hibernate.validator.constraints.NotBlank; 5 import org.springframework.we

阿里云附件文件流的形式上传、下载

1.View附件上传 @using (Html.BeginForm("StartUpLoad", "ReferenceDocument", new {id = ViewBag.Id}, FormMethod.Post, new {enctype = "multipart/form-data"})) { <input type="file" name="filedata" id="fileUp

C++文件流

文件流:以文件为输入输出对象的流 #include<fstream> 一.文件操作打开一个输入或输出文件 1.打开一个输出文件 ofstream fout; fout.open("1.txt"); 2.打开一个输入文件 ifstream  fin; fin.open("2.txt"); 3.打开一个文件,既可以输入也可以输出 fstream finout: finout.open("3.txt"): 更便捷方式   ofstream

文件流:&quot;fopen&quot;,&quot;fclose&quot;,“ftell”&quot;fseek&quot;,&quot;fgets&quot;,&quot;fprintf&quot; ,“feof”,&quot;fwrite&quot;,&quot;fread&quot;

char const* filename="D:/hello.txt"; "fopen", FILE *fp=fopen(char const *name,char const mode); e.g:FILE *fp = fopen(filename,"wb"); 打开文件流,name为要打开文件的路径,如这里的filename:mode 为对文件的操作模式,通常使用:"wb"(写操作),"rb"(读操作)

C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器,它能够长期保留信息,能读能写,可以刷新重写,方便携带,因而得到广泛使用. 文件(file)是程序设计中一个重要的概念.所谓“文件”,一般指存储在外部介质上数据的集合.一批数据是以文件的形式存放在外部介质(如磁盘.光盘和U盘)上的.操 作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部

JAVA学习--文件流FileInputStream和FileOutputStream操作

* 1.流的分类: * 按照数据流向的不同:输入流  输出流 * 按照处理数据的单位的不同:字节流  字符流(处理的文本文件) * 按照角色的不同:节点流(直接作用于文件的)  处理流 *  * 2.IO的体系 * 抽象基类            节点流(文件流)                                缓冲流(处理流的一种) * InputStream        FileInputStream            BufferedInputStream * Outp