目的: V20304H – [新增附檔] [刪除附檔] [瀏覽附檔] - 資料庫檔案.[上傳][下載][刪除]
處理說明: 1> [新增附檔]鈕 - 選擇檔案後上傳
1>>*.js
1>>*.js
SelectFile(Ok_process);
2>>*.cs - 將 檔案上傳至 Request.Files[0], 並將檔案內容存入 byte[]
Stream file_Strm = Request.Files[cur_FName].InputStream;
//byte[] fileRcrd = new byte[fileSize];
BinaryReader br = new BinaryReader(file_Strm);
byte[] fileBody = br.ReadBytes((Int32)file_Strm.Length);
3>將檔案寫入資料庫
Tmp_Sql = " INSERT INTO AMM_AKFL "
+ " ( AMMNO,"
+ " ITM,FILENAME,FILESIZE,FILEDATE,FILEBODY )"
+ " VALUES "
+ "(" + myfunc.AA(Tmp_AMMNO) + ","
+ myfunc.AA(Tmp_NEXT_ITM) + ","
+ myfunc.AA(Tmp_FILENAME) + ","
+ myfunc.AA(Tmp_FILESIZE) + ","
+ myfunc.AA(Tmp_FILEDATE)
+ ", :FILEBODY "
+ ") ";
cmd.CommandText = Tmp_Sql;
cmd.Parameters.Add("FILEBODY", OracleDbType.Blob, fileBody.Length);
cmd.Parameters["FILEBODY"].Value = fileBody;
cmd.ExecuteNonQuery();
2>[刪除附檔]鈕 - 一般的 Del SQL 即可
Tmp_Sql = " DELETE AMM_AKFL "
+ " WHERE AMMNO=" + myfunc.AA(Tmp_AMMNO)
+ " AND ITM=" + myfunc.AA(Tmp_ITM);
cmd.CommandText = Tmp_Sql;
cmd.ExecuteNonQuery();
Tmp_Sql = " DELETE AMM_AKFL "
+ " WHERE AMMNO=" + myfunc.AA(Tmp_AMMNO)
+ " AND ITM=" + myfunc.AA(Tmp_ITM);
cmd.CommandText = Tmp_Sql;
cmd.ExecuteNonQuery();
3>[瀏覽檔案]鈕 : 利用VUTLAPI/dnloadFile_Cnd?
var Tmp_Flds = "FILENAME,FILEBODY"
var Tmp_Cnd = " AND AMMNO=" + AA(cur_rec.data["AMMNO"])
+ " AND ITM=" + AA(cur_rec.data["ITM"]);
var Tmp_url = "../api/VUTLAPI/dnloadFile_Cnd?aTbl=AMM_AKFL&Flds=" + Tmp_Flds + "&aCnd=" + Tmp_Cnd;document.location = Tmp_url;
1>*.js
var sub1_Btns = [
{
xtype: 'button', text: '新增附檔', id: 'sub1_AddBtn',
listeners: {
click: function () {
//mysuccessalert("新增附檔");
SelectFile(Ok_process);
}}},
2>*.cs
// sub1.[新增附檔] 鈕 , 新增一筆 AMM_AKFL資料 (上傳檔案)
[HttpPost]
public void uploadFile2AMM_AKFL()
{
HttpContext c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
string FName = nvc["FName"];
string Tmp_AMMNO = nvc["AMMNO"];
HttpCookie MyCookie; //將訊息傳至前端
HttpRequest Request = HttpContext.Current.Request;
var response = this.Request.CreateResponse();
string file_Name = FName;
string FILEDT = DateTime.Now.ToString("yyyy/MM/dd");
string Tmp_RtnMsg = "";
string Tmp_Sql = "", Tmp_Str = "";
OracleConnection conn = new OracleConnection(DBService.ConnectionString(DBLINK));//
OracleCommand cmd = new OracleCommand();
OracleDataReader reader;
conn.Open();
cmd.Connection = conn;
foreach (string cur_FName in Request.Files)
{
string fileType = Request.Files[cur_FName].ContentType;
Stream file_Strm = Request.Files[cur_FName].InputStream;
file_Name = Path.GetFileName(Request.Files[cur_FName].FileName);
int fileSize = Request.Files[cur_FName].ContentLength;
//byte[] fileRcrd = new byte[fileSize];
BinaryReader br = new BinaryReader(file_Strm);
byte[] fileBody = br.ReadBytes((Int32)file_Strm.Length);
string Tmp_FILENAME = file_Name;
string Tmp_NEXT_ITM = get_NEXT_ITM(Tmp_AMMNO);
string Tmp_FILEDATE = FILEDT; // 當天
string Tmp_FILESIZE = fileSize.ToString();
//更新資料庫欄位值
try
{
Tmp_Sql = " INSERT INTO AMM_AKFL "
+ " ( AMMNO,"
+ " ITM,FILENAME,FILESIZE,FILEDATE,FILEBODY )"
+ " VALUES "
+ "(" + myfunc.AA(Tmp_AMMNO) + ","
+ myfunc.AA(Tmp_NEXT_ITM) + "," + myfunc.AA(Tmp_FILENAME) + "," + myfunc.AA(Tmp_FILESIZE) + "," + myfunc.AA(Tmp_FILEDATE) + ", :FILEBODY "
+ ") ";
2>*.cs
// sub1.[新增附檔] 鈕 , 新增一筆 AMM_AKFL資料 (上傳檔案)
[HttpPost]
public void uploadFile2AMM_AKFL()
{
HttpContext c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
string FName = nvc["FName"];
string Tmp_AMMNO = nvc["AMMNO"];
HttpCookie MyCookie; //將訊息傳至前端
HttpRequest Request = HttpContext.Current.Request;
var response = this.Request.CreateResponse();
string file_Name = FName;
string FILEDT = DateTime.Now.ToString("yyyy/MM/dd");
string Tmp_RtnMsg = "";
string Tmp_Sql = "", Tmp_Str = "";
OracleConnection conn = new OracleConnection(DBService.ConnectionString(DBLINK));//
OracleCommand cmd = new OracleCommand();
OracleDataReader reader;
conn.Open();
cmd.Connection = conn;
foreach (string cur_FName in Request.Files)
{
string fileType = Request.Files[cur_FName].ContentType;
Stream file_Strm = Request.Files[cur_FName].InputStream;
file_Name = Path.GetFileName(Request.Files[cur_FName].FileName);
int fileSize = Request.Files[cur_FName].ContentLength;
//byte[] fileRcrd = new byte[fileSize];
BinaryReader br = new BinaryReader(file_Strm);
byte[] fileBody = br.ReadBytes((Int32)file_Strm.Length);
string Tmp_FILENAME = file_Name;
string Tmp_NEXT_ITM = get_NEXT_ITM(Tmp_AMMNO);
string Tmp_FILEDATE = FILEDT; // 當天
string Tmp_FILESIZE = fileSize.ToString();
//更新資料庫欄位值
try
{
Tmp_Sql = " INSERT INTO AMM_AKFL "
+ " ( AMMNO,"
+ " ITM,FILENAME,FILESIZE,FILEDATE,FILEBODY )"
+ " VALUES "
+ "(" + myfunc.AA(Tmp_AMMNO) + ","
+ myfunc.AA(Tmp_NEXT_ITM) + "," + myfunc.AA(Tmp_FILENAME) + "," + myfunc.AA(Tmp_FILESIZE) + "," + myfunc.AA(Tmp_FILEDATE) + ", :FILEBODY "
+ ") ";
cmd.CommandText = Tmp_Sql;
cmd.Parameters.Add("FILEBODY", OracleDbType.Blob, fileBody.Length);
cmd.Parameters["FILEBODY"].Value = fileBody;
cmd.ExecuteNonQuery();
Tmp_RtnMsg = "[新增附檔]成功!!";
MyCookie = new HttpCookie("EX_DFile", HttpUtility.UrlEncode(Tmp_RtnMsg));
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.End();
return;
}// try
catch (Exception e)
{ //失敗
Tmp_RtnMsg = "[新增附檔]失敗!!<br>"
+ e.Message + "<br>";
MyCookie = new HttpCookie("EX_DFile", HttpUtility.UrlEncode(Tmp_RtnMsg));
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.End();
return;
}
finally
{
conn.Close();
}
} //end of foreach (string cur_FName in Request.Files)
return;
} // end of uploadFile2AMM_FMF()
cmd.Parameters.Add("FILEBODY", OracleDbType.Blob, fileBody.Length);
cmd.Parameters["FILEBODY"].Value = fileBody;
cmd.ExecuteNonQuery();
Tmp_RtnMsg = "[新增附檔]成功!!";
MyCookie = new HttpCookie("EX_DFile", HttpUtility.UrlEncode(Tmp_RtnMsg));
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.End();
return;
}// try
catch (Exception e)
{ //失敗
Tmp_RtnMsg = "[新增附檔]失敗!!<br>"
+ e.Message + "<br>";
MyCookie = new HttpCookie("EX_DFile", HttpUtility.UrlEncode(Tmp_RtnMsg));
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.End();
return;
}
finally
{
conn.Close();
}
} //end of foreach (string cur_FName in Request.Files)
return;
} // end of uploadFile2AMM_FMF()
cur_rec = cur_recs[0];
console.log("cur_rec:", cur_rec);
console.log("Tmp_sub1_Grid.store:", Tmp_sub1_Grid.store);
var Tmp_Flds = "FILENAME,FILEBODY"
var Tmp_Cnd = " AND AMMNO=" + AA(cur_rec.data["AMMNO"])
+ " AND ITM=" + AA(cur_rec.data["ITM"]);
var Tmp_url = "../api/VUTLAPI/dnloadFile_Cnd?aTbl=AMM_AKFL&Flds=" + Tmp_Flds + "&aCnd=" + Tmp_Cnd;
//document.location = "../api/VUTLAPI/dnloadSS_File?FNAME=V20304H_匯入格式.xlsx ";
document.location = Tmp_url;
mysuccessalert("瀏覽附檔((下載))成功!!");
沒有留言:
張貼留言