From c98e2ee71f1dd376dad17a0ac38d3c4657e51d1a Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 26 Nov 2020 12:08:19 +0100 Subject: [PATCH] modifiche fileUpload x gestione dxf oltre a csv --- NKC_WF/WebUserControls/cmp_fileUpload.ascx | 3 +- NKC_WF/WebUserControls/cmp_fileUpload.ascx.cs | 387 +++++++++++------- .../cmp_fileUpload.ascx.designer.cs | 9 + 3 files changed, 244 insertions(+), 155 deletions(-) diff --git a/NKC_WF/WebUserControls/cmp_fileUpload.ascx b/NKC_WF/WebUserControls/cmp_fileUpload.ascx index 9b312c7..80839bb 100644 --- a/NKC_WF/WebUserControls/cmp_fileUpload.ascx +++ b/NKC_WF/WebUserControls/cmp_fileUpload.ascx @@ -3,6 +3,7 @@ +
<%: traduci("cancel") %> @@ -21,4 +22,4 @@
-
+
\ No newline at end of file diff --git a/NKC_WF/WebUserControls/cmp_fileUpload.ascx.cs b/NKC_WF/WebUserControls/cmp_fileUpload.ascx.cs index 11d99dd..72b79ab 100644 --- a/NKC_WF/WebUserControls/cmp_fileUpload.ascx.cs +++ b/NKC_WF/WebUserControls/cmp_fileUpload.ascx.cs @@ -4,44 +4,38 @@ using System.IO; namespace NKC_WF.WebUserContols { - public class FileUploadEventArgs : EventArgs - { - /// - /// Evento con argomenti soppevato post fileUpload - /// - /// - /// - /// - public FileUploadEventArgs(string localPath, string fileName, string batchName) - { - _localPath = localPath; - _fileName = fileName; - _batchName = batchName; - } - private string _localPath; - private string _fileName; - private string _batchName; - - public string LocalPath - { - get { return _localPath; } - set { _localPath = value; } - } - public string FileName - { - get { return _fileName; } - set { _fileName = value; } - } - public string BatchName - { - get { return _batchName; } - set { _batchName = value; } - } - } - - public partial class cmp_fileUpload : BaseUserControl { + #region Protected Fields + + /// + /// Folder REMOTA x copia verso SQL + /// + protected string _SqlCopyDir = memLayer.ML.CRS("_SqlCopyDir"); + + /// + /// Folder x SQL import + /// + protected string _SqlImportDir = memLayer.ML.CRS("_SqlImportDir"); + + /// + /// Folder di upload temporaneo files + /// + protected string _tempUploadDir = memLayer.ML.CRS("_tempUploadDir"); + + #endregion Protected Fields + + #region Public Events + + /// + /// Evento upload e salvataggio su server IIS del file... + /// + public event EventHandler eh_FileUploaded; + + #endregion Public Events + + #region Public Properties + /// /// Prefisso file abilitato /// @@ -58,131 +52,20 @@ namespace NKC_WF.WebUserContols } /// - /// Evento upload e salvataggio su server IIS del file... + /// Suffisso file abilitato (=tipo) /// - public event EventHandler eh_FileUploaded; - /// - /// Solelva evento salvataggio file con messaggio path/nome - /// - /// - /// - public void reportFileUploaded(FileUploadEventArgs e) - { - EventHandler handler = eh_FileUploaded; - if (handler != null) - { - handler(this, e); - } - } - - /// - /// Folder di upload temporaneo files - /// - protected string _tempUploadDir = memLayer.ML.CRS("_tempUploadDir"); - /// - /// Folder REMOTA x copia verso SQL - /// - protected string _SqlCopyDir = memLayer.ML.CRS("_SqlCopyDir"); - /// - /// Folder x SQL import - /// - protected string _SqlImportDir = memLayer.ML.CRS("_SqlImportDir"); - - - /// - /// permesso scrittura SE E' abilitato a partire dalla tab diritti... - /// - public bool userIsAuth + public string fileSuffix { get { - return true; - //return (idxAmm + idxFornitore > 0); - } - } - public bool isWriteEnabled - { - get - { - bool answ = false; - bool.TryParse(hfWriteEnabled.Value, out answ); - return answ; + return hfFileSuffix.Value; } set { - hfWriteEnabled.Value = value.ToString(); - } - } - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - divMessagge.Visible = false; - fisVisFU(false); - deleteOldFiles(); - } - divNewEdit.Visible = userIsAuth && isWriteEnabled; - } - /// - /// Procedee a bonificare la cartella di upload dei files + vecchi di 3 mesi - /// - private void deleteOldFiles() - { - string dirPath = Server.MapPath(_tempUploadDir); - // elenco files nella directory - string[] files = Directory.GetFiles(dirPath); - // li guardo tutti e se vecchi li elimino... - foreach (string file in files) - { - FileInfo fi = new FileInfo(file); - if (fi.LastAccessTime < DateTime.Now.AddMonths(-3)) - fi.Delete(); + hfFileSuffix.Value = value; } } - protected void Upload(object sender, EventArgs e) - { - string csvFileName = ""; - string uploadedFilename = ""; - string batchName = ""; - string savedFilename = ""; - string contentType = ""; - DateTime adesso = DateTime.Now; - string dirFrom = Server.MapPath(_tempUploadDir); - // se c'è un file - if (FileUpload1.PostedFile != null) - { - uploadedFilename = Path.GetFileName(FileUpload1.PostedFile.FileName.Replace(" ", "_")).ToLower(); - csvFileName = $"{adesso.ToString("dd-HHmmss")}_{uploadedFilename}"; - batchName = uploadedFilename.Replace(".csv", "").Replace("cnc", "").Replace("kit", ""); - savedFilename = Server.MapPath($"{_tempUploadDir}{csvFileName}"); - divMessagge.Visible = false; - // verifica preliminare del PRE del name... - if (!string.IsNullOrEmpty(filePrefix) && !uploadedFilename.StartsWith(filePrefix.ToLower())) - { - divMessagge.Visible = true; - lblMessage.Text = $"{traduci("FilePrefixError")} {filePrefix}"; - } - else - { - contentType = FileUpload1.PostedFile.ContentType; - // accedo allo stream del file allegato - using (Stream fs = FileUpload1.PostedFile.InputStream) - { - // scrivo su file - FileStream file = new FileStream(savedFilename, FileMode.Create, FileAccess.Write); - fs.CopyTo(file); - file.Close(); - } - // segnaloc he ho CARICATO IN LOCALE il file - reportFileUploaded(new FileUploadEventArgs(dirFrom, csvFileName, batchName)); - } - } - if (forceRedirect) - { - Response.Redirect(Request.RawUrl); - } - } /// /// Indica se fare redirect post upload /// @@ -200,11 +83,53 @@ namespace NKC_WF.WebUserContols } } - protected void btnAdd_Click(object sender, EventArgs e) + public bool isWriteEnabled { - fisVisFU(true); - lbtUpload.Text = traduci("AddNew"); + get + { + bool answ = false; + bool.TryParse(hfWriteEnabled.Value, out answ); + return answ; + } + set + { + hfWriteEnabled.Value = value.ToString(); + } } + + /// + /// permesso scrittura SE E' abilitato a partire dalla tab diritti... + /// + public bool userIsAuth + { + get + { + return true; + //return (idxAmm + idxFornitore > 0); + } + } + + #endregion Public Properties + + #region Private Methods + + /// + /// Procedee a bonificare la cartella di upload dei files + vecchi di 3 mesi + /// + private void deleteOldFiles() + { + string dirPath = Server.MapPath(_tempUploadDir); + // elenco files nella directory + string[] files = Directory.GetFiles(dirPath); + // li guardo tutti e se vecchi li elimino... + foreach (string file in files) + { + FileInfo fi = new FileInfo(file); + if (fi.LastAccessTime < DateTime.Now.AddMonths(-3)) + fi.Delete(); + } + } + /// /// fix visibilità controllo file upload /// @@ -216,10 +141,164 @@ namespace NKC_WF.WebUserContols lbtCancel.Visible = showAdd; } + #endregion Private Methods + + #region Protected Methods + + protected void btnAdd_Click(object sender, EventArgs e) + { + fisVisFU(true); + lbtUpload.Text = traduci("AddNew"); + } + protected void btnCancel_Click(object sender, EventArgs e) { Response.Redirect(Request.RawUrl); } + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + divMessagge.Visible = false; + fisVisFU(false); + deleteOldFiles(); + } + divNewEdit.Visible = userIsAuth && isWriteEnabled; + } + + protected void Upload(object sender, EventArgs e) + { + string uploadedFileName = ""; + string uploadedFilename = ""; + string batchName = ""; + string savedFilename = ""; + string contentType = ""; + DateTime adesso = DateTime.Now; + string dirFrom = Server.MapPath(_tempUploadDir); + // se c'è un file + if (FileUpload1.PostedFile != null) + { + uploadedFilename = Path.GetFileName(FileUpload1.PostedFile.FileName.Replace(" ", "_")).ToLower(); + // verifico suffisso sia corretto... + if (!string.IsNullOrEmpty(fileSuffix) && !uploadedFilename.EndsWith(fileSuffix.ToLower())) + { + divMessagge.Visible = true; + lblMessage.Text = $"{traduci("FileSuffixError")} {fileSuffix}"; + } + else + { + // se sono a validare dxf... + if (fileSuffix == ".dxf") + { + batchName = uploadedFilename; + } + else + { + // altrimenti per csv CNC/KIT.. + uploadedFileName = $"{adesso.ToString("dd-HHmmss")}_{uploadedFilename}"; + batchName = uploadedFilename.Replace(fileSuffix, "").Replace("cnc", "").Replace("kit", ""); + } + savedFilename = Server.MapPath($"{_tempUploadDir}{uploadedFileName}"); + divMessagge.Visible = false; + // verifica preliminare del PRE del name... + if (!string.IsNullOrEmpty(filePrefix) && !uploadedFilename.StartsWith(filePrefix.ToLower())) + { + divMessagge.Visible = true; + lblMessage.Text = $"{traduci("FilePrefixError")} {filePrefix}"; + } + else + { + contentType = FileUpload1.PostedFile.ContentType; + // accedo allo stream del file allegato + using (Stream fs = FileUpload1.PostedFile.InputStream) + { + // scrivo su file + FileStream file = new FileStream(savedFilename, FileMode.Create, FileAccess.Write); + fs.CopyTo(file); + file.Close(); + } + // segnaloc he ho CARICATO IN LOCALE il file + reportFileUploaded(new FileUploadEventArgs(dirFrom, uploadedFileName, batchName)); + } + } + } + if (forceRedirect) + { + Response.Redirect(Request.RawUrl); + } + } + + #endregion Protected Methods + + #region Public Methods + + /// + /// Solelva evento salvataggio file con messaggio path/nome + /// + /// + /// + public void reportFileUploaded(FileUploadEventArgs e) + { + EventHandler handler = eh_FileUploaded; + if (handler != null) + { + handler(this, e); + } + } + + #endregion Public Methods + } + + public class FileUploadEventArgs : EventArgs + { + #region Private Fields + + private string _batchName; + + private string _fileName; + + private string _localPath; + + #endregion Private Fields + + #region Public Constructors + + /// + /// Evento con argomenti soppevato post fileUpload + /// + /// + /// + /// + public FileUploadEventArgs(string localPath, string fileName, string batchName) + { + _localPath = localPath; + _fileName = fileName; + _batchName = batchName; + } + + #endregion Public Constructors + + #region Public Properties + + public string BatchName + { + get { return _batchName; } + set { _batchName = value; } + } + + public string FileName + { + get { return _fileName; } + set { _fileName = value; } + } + + public string LocalPath + { + get { return _localPath; } + set { _localPath = value; } + } + + #endregion Public Properties } } \ No newline at end of file diff --git a/NKC_WF/WebUserControls/cmp_fileUpload.ascx.designer.cs b/NKC_WF/WebUserControls/cmp_fileUpload.ascx.designer.cs index 63c0c84..46da4f5 100644 --- a/NKC_WF/WebUserControls/cmp_fileUpload.ascx.designer.cs +++ b/NKC_WF/WebUserControls/cmp_fileUpload.ascx.designer.cs @@ -41,6 +41,15 @@ namespace NKC_WF.WebUserContols /// protected global::System.Web.UI.WebControls.HiddenField hfFilePrefix; + /// + /// Controllo hfFileSuffix. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.HiddenField hfFileSuffix; + /// /// Controllo divFileUpl. ///