【问题标题】:A file downloaded from DB is 'Read-Only' (cannot modify)从 DB 下载的文件是“只读”(无法修改)
【发布时间】:2017-07-07 19:34:17
【问题描述】:

我有以下课程:

    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Data { get; set; }

我使用以下方法将 .docx 文件上传到服务器:

        internal void AddDraft(OpenFileDialog openFileDialog, string description)
    {
        FileInfo fi = new FileInfo(openFileDialog.FileName);
        Draft draft = new Draft();
        draft.Description = description;
        draft.Name = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length);
        draft.Data = getDataFromDraft(openFileDialog);

        RestRequest request = new RestRequest("api/draft", Method.POST);
        request.RequestFormat = DataFormat.Json;
        request.AddBody(draft);

        restClient.Execute(request);
    }

并使用以下方法将文件转换为 Base64:

        private string getDataFromDraft(OpenFileDialog openFileDialog)
    {
        byte[] bytes = null;

        using (FileStream stream = new FileStream(openFileDialog.FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
        using (BinaryReader br = new BinaryReader(new BufferedStream(stream)))
        {
            bytes = br.ReadBytes((Int32)stream.Length);
        }

        var tmp = Convert.ToBase64String(bytes);

        return Convert.ToBase64String(bytes);
    }

在服务器端,base64 数据被转换为byte[] 并保存在一个表中。

之后,我使用以下方法下载它(在 WPF 应用程序中)

        internal void SaveDraft(SaveFileDialog saveFileDialog, Draft draft)
    {
        byte[] bytes = Convert.FromBase64String(draft.Data);
        using (FileStream fs = new FileStream(saveFileDialog.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
        using (BinaryWriter bw = new BinaryWriter(new BufferedStream(fs)))
        {
            bw.Write(bytes);
            bw.Flush();
        }
    }

这是我的问题:
所有下载的文件都是只读的,但我想修改并保存下载的文件。

有什么建议吗?

【问题讨论】:

  • 请用清晰的英文详细说明您的问题陈述。如果可能的话,提供一个例子。
  • 好的。当我尝试从数据库下载数据并将其保存在磁盘上时,文件只能读取。我需要更改什么才能修改该文件?

标签: c# sql wpf database filestream


【解决方案1】:

好的,我发现问题出在哪里。我一直尝试将下载的文件保存在 C:/. 当我将它保存在另一个位置时,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 2012-02-26
    • 2011-09-30
    相关资源
    最近更新 更多