一、第一步 定義參數前端
//主表TableAweb
public class TableA服務器
{ide
public List<TableB> AccidentImgByte { get; set; }測試
}日誌
//子表TableB接口
public class TableB{圖片
public Byte[] AccidentImgflow { get; set; }//文件流ci
public String AccidentImgName { get; set; }//文件名稱圖片處理
public String AccidentImgExt { get; set; }//文件格式
}
二、接口
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;
}
三、前端(外部)調用
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(); } }