zoukankan      html  css  js  c++  java
  • 上传和下载歌曲文件(C#)

    第一次项目实训的时候是做的一个基于Silverlight的泡泡点歌系统,我负责做的是管理员部分(做的有点类似于一个客户端,用WPF写的),其间用到的有歌曲的上传和下载功能。

    在网上找了很多关于歌曲上传和下载的源码,但是它们主要讲的是文件的上传和下载,而案例部分则是图片或是其他文件,讲到具体的歌曲文件的上传却很少。而且歌曲文件的上传和下载和其他的上传下载,还是有一定的不同的。自己研究了一天,具体的也大致的有了一定的了解。

    现在贴上我写的代码,希望能帮到大家。吐舌头

    (是作为一个Btton的相应事件上传的,所以是这样子的,中间有一些服务的类,用于在数据库中添加纪录等等的)

    上传:

            private void UpLoadSongBtn_Click(object sender, RoutedEventArgs e)
            {
                //选择上传文件上传到目的目录。。。。。//现在在数据库上的添加也是没有的。。。
                musicFileInfo = new FileInfo(FilePathTxt.Text);
                UploadFileInfo uploadFileInfo = new UploadFileInfo();
                uploadFileInfo.Name = musicFileInfo.Name;
    
                Stream stream = musicFileInfo.OpenRead();
    
                uploadFileInfo.Size = (int)(stream.Length / 1024);
                uploadFileInfo.Data = new List<byte[]>();
    
                int len;
                long rest;
                while (stream.Position > -1 && stream.Position < stream.Length)
                {
                    rest = stream.Length - stream.Position;
                    len = (rest > 16384) ? 16384 : (int)rest;
                    byte[] fileData = new byte[len];
                    stream.Read(fileData, 0, len);
                    uploadFileInfo.Data.Add(fileData);
                }
                stream.Close();
                ProgressBar1.Maximum = uploadFileInfo.Data.Count;
                ProgressBar1.Value = 0;
    
                UploadFileService.UploadFileServiceClient client = new UploadFileService.UploadFileServiceClient();
                bool isAppend = false;
                for (int i = 0; i < uploadFileInfo.Data.Count; i++)
                {
                    client.DoUploadFile(musicFileInfo.Name, uploadFileInfo.Data[i], isAppend);
                    ProgressBar1.Value++;
                    isAppend = true;
                }
            }
    下载:

            private void downloadService_DownloadFileCompleted(object sender, DownLoadServiceReference.DownloadFileCompletedEventArgs e)
            {
                if (e.Error == null)
                {
                    SaveFileDialog saveDialog = (SaveFileDialog)e.UserState;//获取标识的SaveFileDialog
                    using (Stream stream = saveDialog.OpenFile())
                    {
                        stream.Write(e.Result, 0, e.Result.Length);
                    }
                    MessageBox.Show("下载成功!");
                }
                else
                {
                    MessageBox.Show("下载失败!");
                }
            }



  • 相关阅读:
    5.21 CSS样式表练习
    5.20 c#验证码练习
    5.20 邮箱注册,及网页嵌套,知识点复习
    5.19 网页注册练习
    5.19练习标签及其 定义
    5.16 兔子生兔子,日期时间练习
    5.15 复习;共5题
    5.11 集合 与 特殊集合
    5.11 集合与特殊集合
    WinForm1
  • 原文地址:https://www.cnblogs.com/NewWork/p/3260580.html
Copyright © 2011-2022 走看看