コード例 #1
0
        public override Stream GetOutputStream(UploadedFile file)
        {
            FileStream fileS = null;
            ZipOutputStream zipS = null;

            try
            {
                string outputPath = GetZipPath(file);

                Directory.CreateDirectory(Path.GetDirectoryName(outputPath));

                fileS = File.OpenWrite(outputPath);
                zipS = new ZipOutputStream(fileS);

                zipS.SetLevel(5);

                zipS.PutNextEntry(new ZipEntry(file.ClientName));

                file.LocationInfo[FileNameKey] = outputPath;

                return zipS;
            }
            catch
            {
                if (fileS != null)
                    fileS.Close();

                if (zipS != null)
                    zipS.Close();

                return null;
            }
        }
コード例 #2
0
        public override Stream GetWriteStream(UploadedFile file)
        {
            file.ServerLocation = Path.Combine(HttpContext.Current.Server.MapPath(_location), Path.GetFileNameWithoutExtension(GetValidFileName(file.ClientName)) + ".zip");

            Directory.CreateDirectory(Path.GetDirectoryName(file.ServerLocation));

            FileStream fileS = null;
            ZipOutputStream zipS = null;

            try
            {
                fileS = File.OpenWrite(file.ServerLocation);
                zipS = new ZipOutputStream(fileS);

                zipS.SetLevel(5);

                zipS.PutNextEntry(new ZipEntry(file.ClientName));

                return zipS;
            }
            catch
            {
                if (zipS != null)
                    zipS.Dispose();
                if (fileS != null)
                    fileS.Dispose();

                throw;
            }
        }
コード例 #3
0
        public override Stream GetInputStream(UploadedFile file)
        {
            FileStream fileS = null;
            ZipInputStream zipS = null;

            try
            {
                string path = GetZipPath(file);

                fileS = File.OpenRead(path);
                zipS = new ZipInputStream(fileS);

                zipS.GetNextEntry();

                return zipS;
            }
            catch
            {
                if (fileS != null)
                    fileS.Close();

                if (zipS != null)
                    zipS.Close();

                return null;
            }
        }
コード例 #4
0
ファイル: SimpleLogger.cs プロジェクト: codingbat/BandCamp
        public static void Log(UploadedFile file, string uploadId)
        {
#if DEBUG
            Log(" - Client FileName:" + file.ClientName);

            //if (file.Location is FileUploadLocation)
            //    Log(" - Server FileName:" + ((FileUploadLocation)file.Location).FileName);
#endif
        }
コード例 #5
0
    /// <Summary>Save file</Summary>
    public override Stream GetWriteStream(UploadedFile file)
    {
      //
      //  Not working... file.ServerLocation is empty, however, the HttpRequest has the file contents
      //
      //
      //
      //
      //
      //




      var longLength = file.ContentLength;
      var contentLength = longLength > Int32.MaxValue ? 0 : (int)longLength;

      var buffer = new byte[contentLength];
      var start = 0;
      using (var fileStream = File.OpenRead(file.ServerLocation))
      {
        int count;
        while ((count = fileStream.Read(buffer, start, contentLength - start)) > 0)
        {
          start += count;
        }
      }

      var record = new ImportFile
                     {
                       Contents = buffer,
                       FileSize = contentLength,
                       OriginalFileName = file.ClientName,
                       UploadTime = DateTime.Now,
                       ProcessingStatus = "Imported"
                     };

      Db.ImportFiles.Add(record);
      Db.SaveChanges();

      return null;
    }
コード例 #6
0
        public static DocumentObject Build(UploadedFile fileData,
            string spaceId,
            string spaceSeqNo,
            string spaceName,
            string userId,
            string userName,
            string depId,
            Visible visible)
        {
            var fileName = fileData.ClientName;

            _logger.Debug("存储原始文件...");

            Guid fileId = Guid.NewGuid();
            _logger.Debug("存储原始文件完成");
            var document = new DocumentObject
            {
                Id = fileId,
                FileName = fileName,
                StorePath = fileData.ServerLocation,
                FileSize = fileData.ContentLength,
                CreateTime = DateTime.Now,
                DocumentType = fileName.ToDocumentType(),
                UpdateTime = DateTime.Now,
                CreateUserId = userId,
                CreateUserName = userName,
                SpaceId = spaceId,
                SpaceSeqNo = spaceSeqNo,
                SpaceName = spaceName,
                UpdateUserId = userId,
                UpdateUserName = userName,
                IsConvert = false,
                Visible = (int)visible,
                DepId = depId,
            };

            document.DisplayPath = DocumentSettings.GetDisplayUrl(Path.GetFileName(document.ConvertPath));

            return document;
        }
コード例 #7
0
        public override Stream GetWriteStream(UploadedFile file)
        {
            Stream s = null;

            try
            {
                string fileName = GetStorePath(file.ClientName);
                file.ServerLocation = fileName;
                //mongoPolicy.AddStream(file.ServerLocation, file.ContentType, file.ServerLocation);
                s = MongoPolicy.OpenStream(fileName, file.ContentType);
                return s;

            }
            catch (Exception e)
            {
                if (s != null)
                {
                    CloseWriteStream(file, s, false);
                    RemoveOutput(file);
                }
                throw;
            }
        }
コード例 #8
0
        public override Stream GetReadStream(UploadedFile file)
        {
            FileStream fileS = null;
            ZipInputStream zipS = null;

            try
            {
                fileS = File.OpenRead(file.ServerLocation);
                zipS = new ZipInputStream(fileS);

                zipS.GetNextEntry();

                return zipS;
            }
            catch
            {
                if (zipS != null)
                    zipS.Dispose();
                if (fileS != null)
                    fileS.Dispose();

                throw;
            } 
        }
コード例 #9
0
        /// <summary>
        /// Inserts the record for the given file, and returns the id of the record inserted.
        /// </summary>
        /// <remarks>This is a very verbose implementation, because it supports every possible data type and doesn't use an ORM. When implementing in your solution,
        /// we recommend you rewrite using whatever data access layer you use.</remarks>
        public override string InsertRecord(UploadedFile file, IDbConnection cn, IDbTransaction t)
        {
            string category = file.UploadRequest.Data["fileCategory"];

            using (SqlCommand cmd = (SqlCommand)cn.CreateCommand())
            {
                StringBuilder insertCommand = new StringBuilder();

                insertCommand.Append("INSERT INTO ");
                insertCommand.Append(Table);
                insertCommand.Append(" (");
                insertCommand.Append(DataField);

                if (FileNameField != null)
                {
                    insertCommand.Append(",");
                    insertCommand.Append(FileNameField);
                }

                insertCommand.Append(",");
                insertCommand.Append("Category");

                if (DataType != SqlColumnDataType.FileStream)
                {
                    insertCommand.Append(") VALUES (NULL");
                }
                else
                {
                    insertCommand.Append(") OUTPUT INSERTED." + KeyField);
                    insertCommand.Append(" VALUES (CAST('' AS varbinary(MAX))");
                }

                if (FileNameField != null)
                {
                    insertCommand.Append(",@fileName");

                    SqlParameter fileNameParm = cmd.CreateParameter();

                    fileNameParm.ParameterName = "@fileName";
                    fileNameParm.DbType = DbType.String;
                    fileNameParm.Value = file.ClientName;

                    cmd.Parameters.Add(fileNameParm);
                }

                insertCommand.Append(",@category");

                SqlParameter categoryParm = cmd.CreateParameter();

                categoryParm.ParameterName = "@category";
                categoryParm.DbType = DbType.String;
                categoryParm.Value = category;

                cmd.Parameters.Add(categoryParm);

                insertCommand.Append(");");

                if (DataType != SqlColumnDataType.FileStream)
                    insertCommand.Append("SELECT SCOPE_IDENTITY();");

                cmd.CommandText = insertCommand.ToString();
                cmd.Transaction = t as SqlTransaction;

                try
                {
                    if (cn.State != ConnectionState.Open)
                        cn.Open();

                    return cmd.ExecuteScalar().ToString();
                }
                finally
                {
                    if (t == null)
                        cn.Close();
                }
            }
        }
コード例 #10
0
        public override string GetServerFileName(UploadedFile file)
        {
            string fileRoot = file.UploadRequest.Data["fileRoot"];

            return fileRoot + "\\" + GetValidFileName(file.ClientName);
        }
コード例 #11
0
 /// <Summary>Read file</Summary>
 public override Stream GetReadStream(UploadedFile file)
 {
   throw new NotImplementedException();
 }
コード例 #12
0
 public override void RemoveOutput(UploadedFile file)
 {
   throw new NotImplementedException();
 }
コード例 #13
0
        public override void RemoveOutput(UploadedFile file)
        {
            string path = GetZipPath(file);

            if (File.Exists(path))
                File.Delete(path);
        }
コード例 #14
0
        string GetZipPath(UploadedFile file)
        {
            string location = SlickUploadConfiguration.UploadStreamProvider["location"];

            if (location == null || location.Length == 0)
                location = "~/Files/";

            return Path.Combine(HttpContext.Current.Server.MapPath(location), Path.GetFileNameWithoutExtension(file.ClientName) + ".zip");
        }
コード例 #15
0
 public string GenerateFileName(UploadedFile file)
 {
     return Path.Combine(file.ClientName.Substring(0, 1), file.ClientName);
 }
コード例 #16
0
 public override void RemoveOutput(UploadedFile file)
 {
     //MongoPolicy.Delete(file.ServerLocation);
     // If it's a valid upload
     if (!string.IsNullOrEmpty(file.ServerLocation) && MongoPolicy.Exist(file.ServerLocation))
     {
         MongoPolicy.Delete(file.ServerLocation);
     }
 }
コード例 #17
0
 public override void RemoveOutput(UploadedFile file)
 {
     if (File.Exists(file.ServerLocation))
         File.Delete(file.ServerLocation);
 }
コード例 #18
0
 public override Stream GetReadStream(UploadedFile file)
 {
     //mongoPolicy.GetBytes(file.ServerLocation);
     throw new NotImplementedException();
 }