Je suis coincé avec le chargement swf sur mon aspx. Je suis supposé récupérer le swf de la base de données et l'afficher sur la page. Mon code parvient à créer le swf sur le dossier local après la récupération de db ... mais je n'arrive pas à l'afficher automatiquement sur l'aspx après le téléchargement ... et quel devrait être le code dans l'aspx? ... tout gars idées? ... thx ...Charger le fichier SWF dans ASP.NET
public string swfFileName = "";
protected void Page_Load(object sender, EventArgs e)
{
string swfToDbConnStr = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
try
{
using (SqlConnection connection = new SqlConnection(swfToDbConnStr))
{
// Assumes that connection is a valid SqlConnection object.
SqlCommand command = new SqlCommand(
"SELECT gameStorage FROM eGame", connection);
// Writes the BLOB to a file (*.swf).
FileStream stream;
// Streams the BLOB to the FileStream object.
BinaryWriter writer;
// Size of the BLOB buffer.
int bufferSize = 100;
// The BLOB byte[] buffer to be filled by GetBytes.
byte[] outByte = new byte[bufferSize];
// The bytes returned from GetBytes.
long retval;
// The starting position in the BLOB output.
long startIndex = 0;
// Open the connection and read data into the DataReader.
connection.Open();
SqlDataReader reader = command.ExecuteReader(CommandBehavior.SequentialAccess);
while (reader.Read())
{
// Create a file to hold the output.
stream = new FileStream(
//"logo" + pubID + ".swf", FileMode.OpenOrCreate, FileAccess.Write);
"FBIS" + ".swf", FileMode.OpenOrCreate, FileAccess.Write);
writer = new BinaryWriter(stream);
// Reset the starting byte for the new BLOB.
startIndex = 0;
// Read bytes into outByte[] and retain the number of bytes returned.
retval = reader.GetBytes(0, startIndex, outByte, 0, bufferSize);
// Continue while there are bytes beyond the size of the buffer.
while (retval == bufferSize)
{
writer.Write(outByte);
writer.Flush();
// Reposition start index to end of last buffer and fill buffer.
startIndex += bufferSize;
retval = reader.GetBytes(0, startIndex, outByte, 0, bufferSize);
}
// Write the remaining buffer.
writer.Write(outByte, 0, (int)retval - 1);
writer.Flush();
// Close the output file.
writer.Close();
stream.Close();
}
// Close the reader and the connection.
reader.Close();
connection.Close();
swfFileName = Directory.GetCurrentDirectory();
}
}
catch (Exception exs) { }
}
yup ... la méthode ASHX fonctionne et j'ai modifié le code en utilisant SqlFileStream comme suggéré par @Remus ... thx les gars pour toute l'aide .... – user614454