En fait, j'ai enregistré un fichier dans BinaryData
dans Sql et maintenant je suis en mesure de télécharger ce fichier en convertissant le BinaryData
en Bytes
.Demande d'enregistrement de fichier sur le disque
Mon code est:
object value = (sender as DevExpress.Web.ASPxGridView.ASPxGridView).GetRowValues(e.VisibleIndex, "ID");
Int64 FileID = Convert.ToInt64(value);
var filedata = (from xx in VDC.SURVEY_QUESTION_REPLIES
where xx.ID == FileID
select xx).FirstOrDefault();
string fileextension = filedata.FILE_EXTENSION.ToString();
string fileName = filedata.ANSWER_TEXT.ToString() + fileextension;
string DocumentName = null;
FileStream FStream = null;
BinaryWriter BWriter = null;
byte[] Binary = null;
const int ChunkSize = 100;
int SizeToWrite = 0;
MemoryStream MStream = null;
DocumentName = fileName;
FStream = new FileStream(@"c:\\" + DocumentName, FileMode.OpenOrCreate, FileAccess.Write);
BWriter = new BinaryWriter(FStream);
Binary = (filedata.FILE_DATA) as byte[];
SizeToWrite = ChunkSize;
MStream = new MemoryStream(Binary);
for (int i = 0; i < Binary.GetUpperBound(0) - 1; i = i + ChunkSize)
{
if (i + ChunkSize >= Binary.Length) SizeToWrite = Binary.Length - i;
byte[] Chunk = new byte[SizeToWrite];
MStream.Read(Chunk, 0, SizeToWrite);
BWriter.Write(Chunk);
BWriter.Flush();
}
BWriter.Close();
FStream.Close();
FStream.Dispose();
System.Diagnostics.Process.Start(@"c:\" + DocumentName);
et sauve directement le fichier à l'emplacement C
Drive. Maintenant, My Requirement est que, je dois obtenir une invite pour enregistrer ce fichier et l'utilisateur doit sélectionner l'emplacement d'enregistrement. Est-ce possible?
En donnant une erreur comme celle-ci: Le thread en cours doit être réglé en mode STA (Single Thread Apartment) avant que les appels OLE puissent être effectués. Assurez-vous que votre fonction Main a STAThreadAttribute marqué dessus. Cette exception n'est levée que si un débogueur est attaché au processus. – RealSteel
@RealSteel Justs ajouter l'annotation '[STAThread]' sur votre méthode principale, voir http://stackoverflow.com/questions/6373645/c-sharp-winforms-how-to-set-main-function-stathreadattribute pour plus d'informations – derape