using SteamWare; using System; 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 { /// /// Evento upload e salvataggio su server IIS del file... /// 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 { get { return true; //return (idxAmm + idxFornitore > 0); } } public bool isWriteEnabled { get { bool answ = false; bool.TryParse(hfWriteEnabled.Value, out answ); return answ; } set { hfWriteEnabled.Value = value.ToString(); } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { 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(); } } 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(" ", "_")); csvFileName = $"{adesso.ToString("dd-HHmmss")}_{uploadedFilename}"; batchName = uploadedFilename.ToLower().Replace(".csv", "").Replace("cnc", "").Replace("kit", ""); savedFilename = Server.MapPath($"{_tempUploadDir}{csvFileName}"); 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 /// public bool forceRedirect { get { bool answ = true; bool.TryParse(hfForceRedirect.Value, out answ); return answ; } set { hfForceRedirect.Value = value.ToString(); } } protected void btnAdd_Click(object sender, EventArgs e) { fisVisFU(true); lbtUpload.Text = traduci("AddNew"); } /// /// fix visibilità controllo file upload /// /// mostra controlli add=true oppure nasconde = false private void fisVisFU(bool showAdd) { divFileUpl.Visible = showAdd; btnAdd.Visible = !showAdd; lbtCancel.Visible = showAdd; } protected void btnCancel_Click(object sender, EventArgs e) { //fisVisFU(false); Response.Redirect(Request.RawUrl); } } }