Beispiel #1
0
        private bool UploadFiles(BllFilepathLib lib)
        {
            string foldername = Event.Name + " " + DateTime.Now.ToString("dd.MM.yy H-mm-ss");

            Event.FilepathLib.FolderName = foldername;
            foreach (var path in Filepaths)
            {
                string fileName = Path.GetFileName(path);

                using (Stream uploadStream = new FileStream(path, FileMode.Open))
                {
                    using (FileServiceClient fileService = new FileServiceClient())
                    {
                        var msg = new FileUploadMessage()
                        {
                            VirtualPath = fileName,
                            DataStream  = uploadStream,
                            FolderName  = foldername
                        };
                        fileService.PutFile(msg);
                    }
                }
                Event.FilepathLib.Entities.Add(new BllFilepath {
                    Path = fileName
                });
            }
            //}
            return(true);
        }
Beispiel #2
0
        public static void Download(ChordNode node, string file, string pathToDownload, bool from)
        {
            var fileStream = ChordServer.Instance(node).GetStream(file, from);

            var request = new FileUploadMessage();

            var fileMetadata = new FileMetaData(file);

            request.Metadata       = fileMetadata;
            request.FileByteStream = fileStream;

            FileStream outfile = null;

            outfile = new FileStream(pathToDownload + file, FileMode.Create);


            const int bufferSize = 65536; // 64K

            byte[] buffer    = new byte[bufferSize];
            int    bytesRead = request.FileByteStream.Read(buffer, 0, bufferSize);

            while (bytesRead > 0)
            {
                outfile.Write(buffer, 0, bytesRead);
                bytesRead = request.FileByteStream.Read(buffer, 0, bufferSize);
            }
        }
        /// <summary>
        /// 存储图片
        /// </summary>
        /// <param name="postedFile"></param>
        /// <param name="fileUploadMessage"></param>
        /// <param name="width">宽</param>
        /// <param name="height">高</param>
        /// <returns></returns>
        private static FileMessage SaveImage(HttpPostedFileBase postedFile, FileUploadMessage fileUploadMessage, out int width, out int height)
        {
            var client = _imageService;

            width = height = 0;
            try
            {
                if (postedFile.InputStream.CanRead)
                {
                    System.Drawing.Image image = System.Drawing.Image.FromStream(postedFile.InputStream);
                    width  = image.Width;
                    height = image.Height;
                    //byte[] content = new byte[postedFile.ContentLength + 1];
                    //postedFile.InputStream.Read(content, 0, postedFile.ContentLength);
                    //inValue.FileData = new MemoryStream(content);
                    fileUploadMessage.FileData = postedFile.InputStream;
                    client.UploadFileAndReturnInfo(fileUploadMessage);
                    fileUploadMessage.FileData.Close();
                    fileUploadMessage.FileData.Dispose();
                }
                else
                {
                    _logger.Warn("图片文件不能读取");

                    return(FileMessage.UnknowError);
                }

                return(FileMessage.Success);
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                return(FileMessage.UnknowError);
            }
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            AppDomain.CreateDomain("Server").DoCallBack(delegate
            {
                ServiceHost host = new ServiceHost(typeof(UpLoadService),
                                                   new Uri("http://localhost:1630/UpLoadService.svc"));

                BasicHttpBinding binding       = new BasicHttpBinding();
                binding.TransferMode           = TransferMode.Streamed;
                binding.MaxReceivedMessageSize = 67108864;

                host.AddServiceEndpoint(typeof(IUpLoadService), binding, "");

                host.Open();
            });

            BasicHttpBinding binding2 = new BasicHttpBinding();

            binding2.TransferMode = TransferMode.Streamed;

            IUpLoadService channel = ChannelFactory <IUpLoadService> .CreateChannel(binding2,
                                                                                    new EndpointAddress("http://localhost:1630/UpLoadService.svc"));

            using (channel as IDisposable)
            {
                FileUploadMessage file = new FileUploadMessage();
                file.SavePath = "ppp";
                file.FileName = "safs.bak";
                file.FileData = new FileStream("D:/work/C#/lll.bak", FileMode.Open);

                channel.UploadFile(file);

                file.FileData.Close();
            }
        }
Beispiel #5
0
        private void btnInvokeByHand_Click(object sender, EventArgs e)
        {
            string fileName = SelectFile();

            if (string.IsNullOrEmpty(fileName))
            {
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            FileStream stream = File.OpenRead(fileName);
            var        req    = new FileUploadMessage(fileName.Substring(fileName.LastIndexOf('\\') + 1), "", stream);

            BasicHttpBinding binding = new BasicHttpBinding();

            binding.TransferMode           = TransferMode.Streamed;
            binding.MessageEncoding        = WSMessageEncoding.Mtom;
            binding.MaxReceivedMessageSize = 9223372036854775807;
            binding.SendTimeout            = new TimeSpan(0, 0, 10, 0); // 设置十分钟超时

            IUpLoadService channel = ChannelFactory <IUpLoadService> .CreateChannel(binding,
                                                                                    new EndpointAddress("http://localhost:62805/UpLoadService.svc"));

            using (channel as IDisposable)
            {
                channel.UploadFile(req);
                stream.Close();
                this.Cursor = Cursors.Default;
                MessageBox.Show("文件上传到服务器成功", "上传WCF", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Beispiel #6
0
        public void SendFile(IFormFile file)
        {
            var node = GetValidNode();

            try
            {
                if (node != null)
                {
                    var key = ChordServer.GetHash(file.FileName);


                    var request = new FileUploadMessage();

                    var fileMetadata = new FileMetaData(file.FileName);
                    request.Metadata       = fileMetadata;
                    request.FileByteStream = file.OpenReadStream();

                    var conteinerNode = ChordServer.CallFindContainerKey(node, key);

                    ChordServer.Instance(conteinerNode).AddNewFile(request);
                    request.FileByteStream.Close();
                }
            }
            catch (Exception e)
            {
                DHTChord.Logger.Logger.Log(DHTChord.Logger.Logger.LogLevel.Error, "Sending file", $"Error during sending file {file.FileName} {e.ToString()}");
                SendFile(file);
            }
        }
Beispiel #7
0
        public async Task SendMessage(ResponseMessage responseMessage)
        {
            SlackChatHub chatHub = await GetChatHub(responseMessage);

            if (chatHub != null)
            {
                if (responseMessage is TypingIndicatorMessage)
                {
                    _logger.LogInformation($"Indicating typing on channel '{chatHub.Name}'");
                    await _connection.IndicateTyping(chatHub);
                }
                else if (responseMessage is FileUploadMessage)
                {
                    FileUploadMessage msg = (FileUploadMessage)responseMessage;
                    await _connection.Upload(chatHub, msg.FilePath);
                }
                else
                {
                    var botMessage = new BotMessage
                    {
                        ChatHub     = chatHub,
                        Text        = responseMessage.Text,
                        Attachments = GetAttachments(responseMessage.Attachments)
                    };

                    string textTrimmed = botMessage.Text.Length > 50 ? botMessage.Text.Substring(0, 50) + "..." : botMessage.Text;
                    _logger.LogInformation($"Sending message '{textTrimmed}'");
                    await _connection.Say(botMessage);
                }
            }
            else
            {
                _logger.LogError($"Unable to find channel for message '{responseMessage.Text}'. Message not sent");
            }
        }
Beispiel #8
0
    public void UploadFileMethod(string FileName, System.IO.Stream FileData)
    {
        FileUploadMessage inValue = new FileUploadMessage();

        inValue.FileName = FileName;
        inValue.FileData = FileData;
        ((IFileTransSvc)(this)).UploadFileMethod(inValue);
    }
        /// <summary>
        /// restricted to upload image file , for staging purpose
        /// </summary>
        /// <param name="file"></param>
        /// <param name="key"></param>
        /// <param name="fileInfor"></param>
        /// <param name="p2"></param>
        /// <returns></returns>
        internal static FileMessage UploadFile(FileInfo file, string key, out FileInfor fileInfor, string p2)
        {
            var    client = _imageService;
            string fileKey;
            string fileExt;

            fileInfor = new FileInfor();
            FileMessage f = client.GetFileName(key, (int)file.Length, file.Name, file.Extension, out fileKey, out fileExt);

            if (f == FileMessage.Success)
            {
                fileInfor.FileName     = fileKey;
                fileInfor.FileSize     = (int)file.Length;
                fileInfor.FileExtName  = fileExt;
                fileInfor.ResourceType = ContentType.GetResourceType(fileExt);


                try
                {
                    FileUploadMessage inValue = new FileUploadMessage();
                    inValue.FileName   = fileKey;
                    inValue.KeyName    = key;
                    inValue.FileExt    = fileExt;
                    inValue.SaveOrigin = true;


                    using (var fileHR = file.OpenRead())
                    {
                        inValue.FileData = fileHR;

                        int width, height;
                        using (var image = System.Drawing.Image.FromStream(fileHR))
                        {
                            width  = image.Width;
                            height = image.Height;
                        }
                        fileHR.Seek(0, SeekOrigin.Begin);
                        fileInfor.Width  = width;
                        fileInfor.Height = height;

                        client.UploadFileAndReturnInfo(inValue);
                        fileHR.Close();
                    }


                    return(FileMessage.Success);
                }
                catch
                {
                    return(FileMessage.UnknowError);
                }
            }
            else
            {
                return(f);
            }
        }
        bool RunCalculation(string pFile)
        {
            if (pFile == string.Empty)
            {
                WriteInfoError("Kötelező megadni fájlt!");
                return(false);
            }

            if (!File.Exists(pFile))
            {
                WriteInfoError("A megadott fájl nem létezik!");
                return(false);
            }

            const long maxFileSize = 1024 * 46;            //1024 * 10;

            FileInfo fi = new FileInfo(pFile);

            if (fi.Length > maxFileSize)
            {
                WriteInfoError(string.Concat("A fájl túl nagy! Megengedett maximális fájlméret: ", maxFileSize, ".",
                                             Environment.NewLine, "Megadott fájl mérete: ", fi.Length, ".", Environment.NewLine,
                                             "Mert béna vagyok és egyenlőre még nem tudom miért nem tud nagyobb méretet átküldeni.", Environment.NewLine,
                                             "Azt mondják, a tudatlanság boldoggá tesz. Engem ku...ra idegesít!", Environment.NewLine,
                                             "Ez nem jött be:", Environment.NewLine,
                                             "maxBufferPoolSize=2147483647 maxBufferSize=2147483647 maxReceivedMessageSize=2147483647"));
                return(false);
            }

            FileStream fs = null;
            FileDownloadReturnMessage fdrm;

            try
            {
                fs = File.Open(pFile, FileMode.Open);
                FileUploadMessage fum = new FileUploadMessage(Path.GetFileName(pFile), token, fs);
                try
                {
                    WriteInfoMessage("A feldolgozás folyamatban ...!");
                    fdrm = client.RunCalculation(fum);                     //token
                    return(true);
                }
                catch (FaultException <FaultTextAnalytics> ex)
                {
                    WriteInfoError($"A fájl feldolgozása a következő hibával állt le: { ex.Detail.ErrorText }.");
                    return(false);
                }
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }
Beispiel #11
0
 public void PutFileWithPath(FileUploadMessage msg)
 {
     try
     {
         base.Channel.PutFileWithPath(msg);
     }
     catch (Exception err)
     {
         throw (new SystemException(err.Message));
     }
 }
Beispiel #12
0
        /// <summary>
        /// 上传文件并返回缩略图大小a
        /// </summary>
        /// <param name="postedFile">上传的文件对象</param>
        /// <param name="key">服务端配置索引名</param>
        /// <param name="fileInfor">文件上传后返回的信息对象</param>
        /// <param name="thumbnailInfo">缩略图信息</param>
        /// <returns></returns>
        public static FileMessage UploadFileAndReturnInfo(HttpPostedFileBase postedFile, string key, out FileInfor fileInfor, out ThumbnailInfo thumbnailInfo)
        {
            ImageServiceClientProxy client = new ImageServiceClientProxy();
            string fileKey;
            string fileExt;

            fileInfor     = new FileInfor();
            thumbnailInfo = new ThumbnailInfo();

            FileMessage f = client.GetFileName(key, postedFile.ContentLength, postedFile.FileName, out fileKey, out fileExt);

            if (f == FileMessage.Success)
            {
                try
                {
                    fileInfor.FileName    = fileKey;
                    fileInfor.FileSize    = postedFile.ContentLength;
                    fileInfor.FileExtName = fileExt;

                    FileUploadMessage inValue = new FileUploadMessage();
                    inValue.FileName   = fileKey;
                    inValue.KeyName    = key;
                    inValue.FileExt    = fileExt;
                    inValue.SaveOrigin = true;

                    if (postedFile.InputStream.CanRead)
                    {
                        //byte[] content = new byte[postedFile.ContentLength + 1];
                        //postedFile.InputStream.Read(content, 0, postedFile.ContentLength);
                        //inValue.FileData = new MemoryStream(content);
                        inValue.FileData = postedFile.InputStream;
                        thumbnailInfo    = client.UploadFileAndReturnInfo(inValue);
                        inValue.FileData.Close();
                        inValue.FileData.Dispose();
                    }
                    else
                    {
                        return(FileMessage.UnknowError);
                    }

                    return(FileMessage.Success);
                }
                catch
                {
                    return(FileMessage.UnknowError);
                }
            }
            else
            {
                return(f);
            }
        }
Beispiel #13
0
        public Stream FindFile(string fileName)
        {
            var node = GetValidNode();

            try
            {
                if (node != null)
                {
                    var where = AIRfly.Download.Error;
                    var key = ChordServer.GetHash(fileName);

                    var instance = ChordServer.Instance(node);
                    if (instance.ContainKey(key))
                    {
                        where = AIRfly.Download.DataBase;
                    }
                    else if (instance.ContainInCache(fileName))
                    {
                        where = AIRfly.Download.Cache;
                    }
                    else
                    {
                        var conteinerNodeInstance = ChordServer.Instance(ChordServer.CallFindContainerKey(node, key));

                        if (conteinerNodeInstance.ContainKey(key))
                        {
                            var fileStream   = conteinerNodeInstance.GetStream(fileName, false);
                            var request      = new FileUploadMessage();
                            var fileMetadata = new FileMetaData(fileName);

                            request.Metadata       = fileMetadata;
                            request.FileByteStream = fileStream;

                            instance.AddCacheFile(request);
                            where = AIRfly.Download.Cache;
                        }
                    }

                    if (AIRfly.Download.Error != where)
                    {
                        return(Download(node, fileName, where == AIRfly.Download.Cache));
                    }
                }
            }
            catch (Exception e)
            {
                DHTChord.Logger.Logger.Log(DHTChord.Logger.Logger.LogLevel.Error, "Find file", $"Error during finding file {fileName} {e.ToString()}");
                FindFile(fileName);
            }

            return(null);
        }
Beispiel #14
0
        /// <summary>
        /// 上传文件并返回缩略图大小
        /// </summary>
        /// <param name="postedFile">上传的文件对象</param>
        /// <param name="key">服务端配置索引名</param>
        /// <param name="fileInfor">文件上传后返回的信息对象</param>
        /// <param name="thumbnailInfo">缩略图信息</param>
        /// <returns></returns>
        public static FileMessage UploadFileAndReturnInfo(string key, Stream inputStream, int contentLength, string fileName, out FileInfor fileInfor, out ThumbnailInfo thumbnailInfo)
        {
            ImageServiceClientProxy client = new ImageServiceClientProxy();
            string fileKey;
            string fileExt;

            fileInfor     = new FileInfor();
            thumbnailInfo = new ThumbnailInfo();

            FileMessage f = client.GetFileName(key, contentLength, fileName, out fileKey, out fileExt);

            if (f == FileMessage.Success)
            {
                try
                {
                    fileInfor.FileName = fileKey;
                    fileInfor.FileSize = contentLength;

                    FileUploadMessage inValue = new FileUploadMessage();
                    inValue.FileName   = fileKey;
                    inValue.KeyName    = key;
                    inValue.FileExt    = fileExt;
                    inValue.SaveOrigin = true;

                    if (inputStream.CanRead)
                    {
                        inValue.FileData = inputStream;
                        thumbnailInfo    = client.UploadFileAndReturnInfo(inValue);
                        inValue.FileData.Close();
                        inValue.FileData.Dispose();
                    }
                    else
                    {
                        return(FileMessage.UnknowError);
                    }

                    return(FileMessage.Success);
                }
                catch
                {
                    return(FileMessage.UnknowError);
                }
            }
            else
            {
                return(f);
            }
        }
Beispiel #15
0
        /// <summary>
        /// 将文件从客户端传到服务器
        /// </summary>
        /// <param name="msg"></param>
        public void PutFile(FileUploadMessage msg)
        {
            string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, msg.VirtualPath);
            string dir      = Path.GetDirectoryName(filePath);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            using (var outputStream = new FileStream(filePath, FileMode.Create))
            {
                msg.DataStream.CopyTo(outputStream);
            }

            SendFileUploaded(filePath);
        }
Beispiel #16
0
        public async Task Upload(IFormFile file)
        {
            var connectionString = _configuration["AzureStorageConnectionString"];

            if (file.Length > 0)
            {
                CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

                var blobCient   = storageAccount.CreateCloudBlobClient();
                var queueClient = storageAccount.CreateCloudQueueClient();

                var blobContainer = blobCient.GetContainerReference("uploadfiles");
                await blobContainer.CreateIfNotExistsAsync();

                var blobName = file.FileName + DateTime.Now.Ticks;
                var blob     = blobContainer.GetBlockBlobReference(blobName);

                var queue = queueClient.GetQueueReference("uploadfiles");
                await queue.CreateIfNotExistsAsync();

                using (var stream = file.OpenReadStream())
                {
                    await blob.UploadFromStreamAsync(stream, file.Length);

                    blob.Properties.ContentType = file.ContentType;
                }

                var message = new FileUploadMessage
                {
                    FileName = file.FileName,
                    BlobName = blobName,
                    Metadata = new Dictionary <string, string>()
                };

                foreach (var header in file.Headers)
                {
                    message.Metadata.Add(header.Key, header.Value);
                }

                var json = JsonConvert.SerializeObject(message, Formatting.Indented);

                CloudQueueMessage queueMessage = new CloudQueueMessage(json);

                await queue.AddMessageAsync(queueMessage, new TimeSpan(1, 0, 0), TimeSpan.Zero, new QueueRequestOptions(), new OperationContext());
            }
        }
Beispiel #17
0
        /// <summary>
        /// Uploads a file into the repository
        /// </summary>
        public void PutFile(FileUploadMessage msg)
        {
            var filePath = msg.VirtualPath;
            var dir      = Path.GetDirectoryName(filePath);

            if (dir != null && !Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            using (var outputStream = new FileStream(filePath, FileMode.Create))
            {
                msg.DataStream.CopyTo(outputStream);
            }

            SendFileUploaded(filePath);
        }
Beispiel #18
0
        public static void Send(string fileName, string path, ChordNode node)
        {
            var key = ChordServer.GetHash(fileName);

            Stream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);

            var request = new FileUploadMessage();

            var fileMetadata = new FileMetaData(fileName);

            request.Metadata       = fileMetadata;
            request.FileByteStream = fileStream;

            var conteinerNode = ChordServer.CallFindContainerKey(node, key);

            ChordServer.Instance(conteinerNode).AddNewFile(request);
        }
Beispiel #19
0
        public static async void Run([QueueTrigger("uploadfiles", Connection = "AzureQueue")] FileUploadMessage message,
                                     [Blob("uploadfiles/{BlobName}", FileAccess.Read)] Stream file, TraceWriter log, ExecutionContext context)
        {
            var azureServiceTokenProvider = new AzureServiceTokenProvider();
            var keyVaultClient            = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
            var connectionString          = (await keyVaultClient.GetSecretAsync(GetKeyVaultEndpoint(), "AdventureWorksConnectionString")).Value;

            log.Info($"C# Queue trigger function processed: {message.FileName}");

            if (file != null)
            {
                byte[] fileContent = new byte[file.Length];
                await file.ReadAsync(fileContent, 0, (int)file.Length);

                FileRepository repository = new FileRepository(connectionString);
                repository.AddFile(message.FileName, message.Metadata, fileContent);
            }
        }
Beispiel #20
0
        private void btnSelectFile_Click(object sender, EventArgs e)
        {
            string fileName = SelectFile();

            if (string.IsNullOrEmpty(fileName))
            {
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            FileStream     stream  = File.OpenRead(fileName);
            IUpLoadService service = new UpLoadServiceClient();
            var            req     = new FileUploadMessage(fileName.Substring(0, fileName.LastIndexOf('.')), "", stream);

            service.UploadFile(req);
            stream.Close();
            this.Cursor = Cursors.Default;
            MessageBox.Show("文件上传到服务器成功", "上传WCF", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Beispiel #21
0
        private void TransferFile(SMC_PushDll dll)
        {
            if (dll == null)
            {
                return;
            }

            string path = dll.pd_path + dll.pd_zip_filename;

            if (!System.IO.File.Exists(path))
            {
                return;
            }
            FileStream         fs   = new FileStream(path, FileMode.Open);
            FileTransSvcClient ftsc = new FileTransSvcClient();

            ftsc.Open();

            #region   文件

            FileUploadMessage myFileMessage = new FileUploadMessage();

            myFileMessage.FileName = dll.pd_zip_filename;//"PushSharp-master.zip"; //文件名
            {
                myFileMessage.FileData = fs;
                IFileTransSvc intfFileTrans = ftsc.ChannelFactory.CreateChannel();
                try
                {
                    intfFileTrans.UploadFileMethod(myFileMessage);
                }
                catch { }
                finally
                {
                    fs.Close();
                    fs.Dispose();
                }
            }

            #endregion



            ftsc.Close();
        }
Beispiel #22
0
        public void PutFile(FileUploadMessage msg)
        {
            string storage    = Pipeline.Properties.Resources.ResourceManager.GetString("STORAGE_PATH");
            string fileFolder = Path.Combine(storage, msg.FolderName);
            string filePath   = Path.Combine(fileFolder, msg.VirtualPath);

            if (!Directory.Exists(storage))
            {
                Directory.CreateDirectory(storage);
            }

            if (!Directory.Exists(fileFolder))
            {
                Directory.CreateDirectory(fileFolder);
            }

            using (var outputStream = new FileStream(filePath, FileMode.Create))
            {
                msg.DataStream.CopyTo(outputStream);
            }
        }
Beispiel #23
0
        public void UploadFile(FileUploadMessage request)
        {
            //获得客户端信息
            OperationContext              context           = OperationContext.Current;
            MessageProperties             messageProperties = context.IncomingMessageProperties;
            RemoteEndpointMessageProperty endpointProperty  = (RemoteEndpointMessageProperty)messageProperties[RemoteEndpointMessageProperty.Name];
            //Console.WriteLine("客户端" + endpointProperty.Address + "端口:" + endpointProperty.Port + "开始上传文件" + request.FileName + ".....");
            String     fileName     = request.FileName;
            Stream     sourceStream = request.FileData;
            FileStream targetStream = null;
            String     saveFilePath = Path.Combine(uploadFolder, request.FileName);

            byte[] buffer = new byte[bufferLen];
            Int32  count  = 0;

            if (sourceStream.CanRead)
            {
                //如果文件目录不存在,创建文件所存放的目录.
                if (!Directory.Exists(uploadFolder))
                {
                    Directory.CreateDirectory(uploadFolder);
                }

                targetStream = new FileStream(saveFilePath, FileMode.Create, FileAccess.Write, FileShare.None);
                while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0)
                {
                    targetStream.Write(buffer, 0, count);
                }
                targetStream.Close();
                sourceStream.Close();

                Console.WriteLine("文件" + request.FileName + "传输完毕,存放路径:" + saveFilePath);
            }
            else
            {
                Console.WriteLine("数据流不可读.");
                throw new Exception("数据流不可读!");
            }
        }
Beispiel #24
0
        /// <summary>
        /// Uploads a file into the repository
        /// </summary>
        public void PutFile(FileUploadMessage msg)
        {
            string filePath = Path.Combine(RepositoryDirectory, msg.VirtualPath);

            if (ConfigurationSettings.AppSettings != null)
            {
                string dir = Path.GetDirectoryName(ConfigurationSettings.AppSettings["TemplatePath"].ToString(CultureInfo.InvariantCulture) + "\\" + filePath);

                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }
            }

            using (var outputStream = new FileStream(ConfigurationSettings.AppSettings["TemplatePath"].ToString(CultureInfo.InvariantCulture) + "\\" + filePath, FileMode.Create, FileAccess.ReadWrite))
            {
                msg.DataStream.CopyTo(outputStream);
                outputStream.Close();
            }

            SendFileUploaded(ConfigurationSettings.AppSettings["TemplatePath"].ToString(CultureInfo.InvariantCulture) + "\\" + filePath);
        }
Beispiel #25
0
        public static void Find(string fileName, ChordNode node, string pathToDownload)
        {
            var where = Client.Download.Error;
            var key = ChordServer.GetHash(fileName);

            var instance = ChordServer.Instance(node);

            if (instance.ContainKey(key))
            {
                where = Client.Download.DataBase;
            }
            else if (instance.ContainInCache(fileName))
            {
                where = Client.Download.Cache;
            }
            else
            {
                var conteinerNodeInstance = ChordServer.Instance(ChordServer.CallFindContainerKey(node, key));

                if (conteinerNodeInstance.ContainKey(key))
                {
                    var fileStream   = conteinerNodeInstance.GetStream(fileName, false);
                    var request      = new FileUploadMessage();
                    var fileMetadata = new FileMetaData(fileName);

                    request.Metadata       = fileMetadata;
                    request.FileByteStream = fileStream;

                    instance.AddCacheFile(request);
                    where = Client.Download.Cache;
                }
            }

            if (Client.Download.Error != where)
            {
                Download(node, fileName, pathToDownload, where == Client.Download.Cache);
            }
        }
        /// <summary>
        /// 存储声音文件
        /// </summary>

        /// <param name="fileUploadMessage"></param>
        /// <returns></returns>
        private static FileMessage SaveSound(FileUploadMessage fileUploadMessage, out long Length)
        {
            var client = _imageService;
            var t      = client.UploadFileAndReturnInfo(fileUploadMessage);

            Length = 0;
            if (t != null)
            {
                if (t.Sizes != null)
                {
                    ImageSize v;
                    if (t.Sizes.TryGetValue(fileUploadMessage.KeyName, out v))
                    {
                        Length = v.Length;
                    }
                }
            }

            fileUploadMessage.FileData.Close();
            fileUploadMessage.FileData.Dispose();

            return(FileMessage.Success);
        }
        private void TransferFile(SMC_PushDll dll)
        {
            if (dll == null)
                return;

            string path = dll.pd_path + dll.pd_zip_filename;
            if (!System.IO.File.Exists(path))
                return;
            FileStream fs = new FileStream(path, FileMode.Open);
            FileTransSvcClient ftsc = new FileTransSvcClient();

            ftsc.Open();

            #region 上传文件

            FileUploadMessage myFileMessage = new FileUploadMessage();

            myFileMessage.FileName = dll.pd_zip_filename;//"PushSharp-master.zip"; //文件名
            {
                myFileMessage.FileData = fs;
                IFileTransSvc intfFileTrans = ftsc.ChannelFactory.CreateChannel();
                try
                {
                    intfFileTrans.UploadFileMethod(myFileMessage);
                }
                catch { }
                finally
                {
                    fs.Close();
                    fs.Dispose();
                }

            }

            #endregion

            ftsc.Close();
        }
Beispiel #28
0
        /// <summary>
        /// 上传文件并返回缩略图大小
        /// </summary>
        /// <param name="postedFile">上传的文件</param>
        /// <param name="key">服务端配置索引名</param>
        /// <param name="fileInfor">文件上传后返回的信息对象</param>
        /// <param name="thumbnailInfo">缩略图信息</param>
        /// <param name="userId">用户ID</param>
        /// <returns></returns>
        public static FileMessage UploadFileAndReturnInfo(HttpPostedFileBase postedFile, string key, out FileInfor fileInfor, out ThumbnailInfo thumbnailInfo, int userId)
        {
            string useridstr = userId.ToString();

            if (useridstr.Length < 9)
            {
                for (int i = 0; i < (9 - useridstr.Length); i++)
                {
                    useridstr = "0" + useridstr;
                }
            }

            string[] folders = new string[2];
            folders[0] = useridstr.Substring(0, 3);
            folders[1] = useridstr.Substring(3, 3);

            ImageServiceClientProxy client = new ImageServiceClientProxy();
            string fileKey;
            string fileExt;

            fileInfor     = new FileInfor();
            thumbnailInfo = new ThumbnailInfo();

            FileMessage f = client.GetFileNameByUser(key, postedFile.ContentLength, postedFile.FileName, null, out fileKey, out fileExt, folders);

            if (f == FileMessage.Success)
            {
                try
                {
                    fileInfor.FileName = fileKey;
                    fileInfor.FileSize = postedFile.ContentLength;

                    FileUploadMessage inValue = new FileUploadMessage();
                    inValue.FileName   = fileKey;
                    inValue.KeyName    = key;
                    inValue.FileExt    = fileExt;
                    inValue.SaveOrigin = true;

                    if (postedFile.InputStream.CanRead)
                    {
                        //byte[] content = new byte[postedFile.ContentLength + 1];
                        //postedFile.InputStream.Read(content, 0, postedFile.ContentLength);
                        //inValue.FileData = new MemoryStream(content);
                        inValue.FileData = postedFile.InputStream;
                        thumbnailInfo    = client.UploadFileAndReturnInfo(inValue);
                        inValue.FileData.Close();
                        inValue.FileData.Dispose();
                    }
                    else
                    {
                        return(FileMessage.UnknowError);
                    }

                    return(FileMessage.Success);
                }
                catch
                {
                    return(FileMessage.UnknowError);
                }
            }
            else
            {
                return(f);
            }
        }
        private void BgWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            _workState = false;
            using (
                var client =
                    SvcClientManager.GetSvcClient<UploadServiceClient>(SvcType.UploadSvc))
            {
                Stream stream = _sfd.OpenFile();
                var file = new FileUploadMessage {Name = _fileNameExt, SaveName = FileName};
                file = client.DownloadFile(file);

                try
                {
                    if (!file.FindFile)
                    {
                        _bgWorker.CancelAsync();
                        MessageBox.Show(ResAttachment.FileNotFound);
                        return;
                    }
                    if (file.Data != null)
                    {
                        stream.Position = 0;
                        stream.Write(file.Data, 0, file.Data.Length);
                        e.Result = file.Data.Length;
                        _bgWorker.ReportProgress((int) ((file.Offset/(double) (file.Length))*100),
                                                 file.Offset + file.Data.Length);
                        if (_bgWorker.CancellationPending)
                            return;

                        while (file.Length > file.Offset)
                        {
                            file.Data = null;
                            stream.Position = file.Offset;
                            file = client.DownloadFile(file);
                            stream.Write(file.Data, 0, file.Data.Length);
                            e.Result = file.Offset;
                            _bgWorker.ReportProgress((int) ((file.Offset/(double) (file.Length))*100),
                                                     file.Offset + file.Data.Length);
                            if (_bgWorker.CancellationPending)
                                return;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ErrorMsgManager.GetClientErrMsg(ex, CultureManager.UICulture));
                }
                finally
                {
                    stream.Close();
                }
            }
        }
Beispiel #30
0
 private void BgWorkerDoWork(object sender, DoWorkEventArgs e)
 {
     if (_dialog == null || _dialog.FileName == string.Empty)
     {
         MessageBox.Show(ResAttachment.SelectFirst);
         _workState = false;
         return;
     }
     using (
         var client =
             SvcClientManager.GetSvcClient<UploadServiceClient>(SvcType.UploadSvc))
     {
         const int maxSiz = 1024*10; //设置每次传10k
         Stream stream = _dialog.OpenFile();
         var file = new FileUploadMessage
                        {Name = _dialog.SafeFileName, SaveName = _newName, Length = stream.Length};
         try
         {
             //循环的读取文件,上传,直到文件的长度等于文件的偏移量
             if (file.Length <= 0) 
             {
                 _workState = false;
                 SaveFile = false;
                 MessageBox.Show(ResAttachment.EmptyFile);
                 return;
             }
             while (file.Length != file.Offset)
             {
                 //设置传递的数据的大小
                 file.Data = new byte[file.Length - file.Offset <= maxSiz ? file.Length - file.Offset : maxSiz];
                 stream.Position = file.Offset; //设置本地文件数据的读取位置
                 stream.Read(file.Data, 0, file.Data.Length); //把数据写入到file.Data中
                 file = client.UploadFile(file); //上传
                 e.Result = file.Offset;
                 SavePath = file.SavePath;
                 _bgWorker.ReportProgress((int) ((file.Offset/(double) (file.Length))*100), file.Offset);
                 if (_bgWorker.CancellationPending)
                     return;
             }
             SaveFile = true;
         }
         catch (Exception)
         {
             throw;
             //MessageBox.Show(ErrorMsgManager.GetClientErrMsg(ex, CultureManager.UICulture));
         }
         finally
         {
             stream.Close();
         }
     }
 }
Beispiel #31
0
 public void UploadFile(FileUploadMessage request)
 {
     // IMPLEMENTATION HERE
 }
 public ThumbnailInfo UploadFileAndReturnInfo(FileUploadMessage request)
 {
     return(_imageService.UploadFileAndReturnInfo(request));
 }
        /// <summary>
        /// 上传文件并返回缩略图大小a
        /// </summary>
        /// <param name="postedFile">上传的文件对象</param>
        /// <param name="key">服务端配置索引名</param>
        /// <param name="fileInfor">文件上传后返回的信息对象</param>
        /// <param name="thumbnailInfo">缩略图信息</param>
        /// <returns></returns>
        public static FileMessage UploadFileAndReturnInfo(HttpPostedFileBase postedFile, string key, out FileInfor fileInfor, string[] userFolder, out ThumbnailInfo thumbnailInfo)
        {
            var    client = _imageService;
            string fileKey;
            string fileExt;

            fileInfor     = new FileInfor();
            thumbnailInfo = new ThumbnailInfo();

            FileMessage f = client.GetFileNameByUser(key, postedFile.ContentLength, postedFile.FileName, postedFile.ContentType, out fileKey, out fileExt, userFolder);

            if (f == FileMessage.Success)
            {
                fileInfor.FileName     = fileKey;
                fileInfor.FileSize     = postedFile.ContentLength;
                fileInfor.FileExtName  = fileExt;
                fileInfor.ResourceType = ContentType.GetResourceType(fileExt);

                try
                {
                    FileUploadMessage inValue = new FileUploadMessage();
                    inValue.FileName   = fileKey;
                    inValue.KeyName    = key;
                    inValue.FileExt    = fileExt;
                    inValue.SaveOrigin = true;

                    if (postedFile.InputStream.CanRead)
                    {
                        //byte[] content = new byte[postedFile.ContentLength + 1];
                        //postedFile.InputStream.Read(content, 0, postedFile.ContentLength);
                        //inValue.FileData = new MemoryStream(content);
                        inValue.FileData = postedFile.InputStream;

                        switch (fileInfor.ResourceType)
                        {
                        case ResourceType.Sound:
                            long length;
                            var  t = SaveSound(inValue, out length);
                            fileInfor.Length = length;
                            fileInfor.Width  = (int)length;

                            LoggerManager.Current().Warn(fileInfor.Width);

                            return(t);
                        }

                        int width, height;
                        GetSize(postedFile, out width, out height);
                        fileInfor.Width  = width;
                        fileInfor.Height = height;

                        thumbnailInfo = client.UploadFileAndReturnInfo(inValue);
                        inValue.FileData.Close();
                        inValue.FileData.Dispose();
                    }
                    else
                    {
                        return(FileMessage.UnknowError);
                    }

                    return(FileMessage.Success);
                }
                catch
                {
                    return(FileMessage.UnknowError);
                }
            }
            else
            {
                return(f);
            }
        }
 public void UploadFile(FileUploadMessage request)
 {
     _imageService.UploadFile(request);
 }
        private void btnUpload_Click(object sender, EventArgs e)
        {
            bool typeCheck = true;
            for (int q = 0; q < dataGridView1.Rows.Count && typeCheck; q++)
            {
                if (!Enum.IsDefined(typeof(DefinedFileTypes), Path.GetExtension(dataGridView1.Rows[q].Cells[0].Value.ToString()).ToUpper().Replace(@".", "")))
                {
                    typeCheck = false;
                }
            }
            int i = 0;
            bool stop = false;
            if (fullFilePathList != null && fileToUploadList != null)
            {
                if (typeCheck)
                {
                    try
                    {
                        List<int> ids = AddFiles();
                        foreach (int q in ids)
                        {
                            if (q == 0)
                            {
                                stop = true;
                            }
                        }
                        if (!stop)
                        {
                            foreach (string fullFilePath in fullFilePathList)
                            {
                                using (Stream fileStream = new FileStream(fullFilePath, FileMode.Open, FileAccess.Read))
                                {
                                    var request = new FileUploadMessage();
                                    var fileMetaData = new ClientApp.FileUploadService.FileMetaData();

                                    string ft = fileToUploadList[i].Substring(fileToUploadList[i].LastIndexOf('.') + 1);
                                    fileMetaData.FileName = ids[i] + "." + ft;
                                    fileMetaData.FullLocalPath = fullFilePath;
                                    fileMetaData.FileType = (ClientApp.FileUploadService.DefinedFileTypes)Enum.Parse(typeof(ClientApp.FileUploadService.DefinedFileTypes), Path.GetExtension(fileToUploadList[i]).ToUpper().Replace(@".", ""));
                                    request.Metadata = fileMetaData;
                                    request.FileByteStream = fileStream;
                                    FileUploadMessage fum = new FileUploadMessage(fileMetaData, fileStream);
                                    client.UploadFile(fum);
                                }
                                i++;
                            }

                            client.Close();
                        }

                    }
                    catch (IOException ioException)
                    {
                        // throw new FileTransferProxyException("Unable to open the file to upload");
                        MessageBox.Show("File error!" + ioException);
                    }
                    catch (Exception ex)
                    {
                        //throw new FileTransferProxyException(e.Message);
                        MessageBox.Show("Error in upload, please try again. If this continue contact administrator :(" + ex);
                    }
                    finally
                    {
                        lblError.Text = "File uploaded";
                    }

                }
                else
                {
                    MessageBox.Show("Bad filetype(s)");
                }
            }
            else
            {
                MessageBox.Show("no files seleced");
            }
        }
 private void btnUpload_Click(object sender, EventArgs e)
 {
     //if (Enum.GetNames(typeof(DefinedFileTypes)).Equals(Path.GetExtension(fileToUpload).ToUpper().Replace(@".", "")))
     if (Enum.IsDefined(typeof(DefinedFileTypes), Path.GetExtension(fileToUpload).ToUpper().Replace(@".", "")))
     {
         try
         {
             int id = AddFile(txtFileName.Text, txtDesc.Text);
             if (id != 0)
             {
                 using (Stream fileStream = new FileStream(fullFilePath, FileMode.Open, FileAccess.Read))
                 {
                     var request = new FileUploadMessage();
                     var fileMetaData = new ClientApp.FileUploadService.FileMetaData();
                     string ft = fileToUpload.Substring(fileToUpload.LastIndexOf('.') + 1);
                     fileMetaData.FileName = id.ToString() + "." + ft;
                     fileMetaData.FullLocalPath = fullFilePath;
                     fileMetaData.FileType = (DefinedFileTypes)Enum.Parse(typeof(DefinedFileTypes), Path.GetExtension(fileToUpload).ToUpper().Replace(@".", ""));
                     request.Metadata = fileMetaData;
                     request.FileByteStream = fileStream;
                     FileUploadMessage fum = new FileUploadMessage(fileMetaData, fileStream);
                     client.UploadFile(fum);
                 }
                 client.Close();
             }
         }
         catch (IOException ioException)
         {
             // throw new FileTransferProxyException("Unable to open the file to upload");
             MessageBox.Show("File error!" + ioException);
         }
         catch (Exception ex)
         {
             //throw new FileTransferProxyException(e.Message);
             MessageBox.Show("Error in upload, please try again. If this continue contact administrator :(" + ex);
         }
         finally
         {
             lblError.ForeColor = System.Drawing.Color.Green;
             lblError.Text = "File uploaded";
         }
     }
     else
         MessageBox.Show("Come on man, you need to select a file ;) \n or this is a bad filetype we don't allow");
 }