J'ai une classe suivante:Un fichier téléchargé à partir de DB est « en lecture seule » (ne peut pas modifier)
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Data { get; set; }
je télécharger .docx fichier vers le serveur à l'aide des méthodes suivantes:
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);
}
Et convertir le fichier à l'aide base64 ceci:
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);
}
du côté du serveur, les données base64
est converti en byte[]
et s aved dans une table.
Ensuite, j'utilise la méthode suivante pour le télécharger (dans une application 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();
}
}
Voici mon problème:
Tous les fichiers téléchargés sont en lecture seule, mais j'aimerais pour modifier et enregistrer le fichier téléchargé.
Des suggestions?
Veuillez élaborer votre énoncé de problème en anglais clair. Si possible, donnez un exemple. – Zeeshan
Ok. Quand j'essaye de télécharger des données de la base de données et de l'enregistrer sur le disque, un fichier a seulement accès à lire. Qu'est-ce que j'ai besoin de changer pour modifier ce fichier? – Newer