zoukankan      html  css  js  c++  java
  • 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();
    }
    }

    作者:D调灬仔
    出处:https://www.cnblogs.com/chj929555796/
    您的推荐是我最大的动力,如果觉得这篇文章对你有帮助的话,请点个“推荐”哦,博主在此感谢!
  • 相关阅读:
    在zend framework框架中try{}catch(Exception e){}的跳转问题
    【上】安全HTTPS-全面具体解释对称加密,非对称加密,数字签名,数字证书和HTTPS
    iOS 图像处理-剪裁图像
    Delphi DBGrid记录全选和反选拖动处理
    在DbGrid中,不按下Ctrl,单击鼠标如何实现多选?谢谢
    在DBGrid中实现多选功能
    回车跳到下一个EDIT
    远程控制篇:用Delphi模拟键盘输入/鼠标点击
    SQL的拼接语句在DELPHI中怎么写
    Delphi DbGridEh实现表格没有内容的渐变效果
  • 原文地址:https://www.cnblogs.com/chj929555796/p/7027842.html
Copyright © 2011-2022 走看看