Hey essayant de lire le flux dans le contrôle de l'image peut aider quelqu'un aussi j'ai quelques erreurs dans ma page de gestionnaire.lire le flux dans l'erreur de contrôle de l'image dans le chemin de l'uri
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string PhotoPath;
GridViewRow row = GridView1.Rows[GridView1.SelectedIndex];
PhotoPath = row.Cells[5].Text;
PhotoPath = HttpUtility.UrlEncode(PhotoPath);
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(PhotoPath);
HttpWebResponse response = (HttpWebResponse)
request.GetResponse();
Stream resStream = response.GetResponseStream();
// want to output to image control upon selection of gridview
//using (System.Drawing.Image img = System.Drawing.Image.FromStream(resStream))
//{
// img.Save("temp.jpg", ImageFormat.Jpeg);
//}
}
}
Je reçois la valeur d'erreur ne peut pas être nulle. Nom du paramètre: uriString
public class GetImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
{
string PhotoPath = System.Web.HttpContext.Current.Request.QueryString["PhotoPath"];
PhotoPath = HttpUtility.UrlDecode(PhotoPath);
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(PhotoPath));
// error is here -------------------
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("Administrator", "commando");
try
{
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
byte[] bytes = new byte[2048];
int i = 0;
MemoryStream mStream = new MemoryStream();
do
{
i = stream.Read(bytes, 0, bytes.Length);
mStream.Write(bytes, 0, i);
} while (i != 0);
context.Response.Clear();
context.Response.ClearHeaders();
context.Response.ClearContent();
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite(mStream.GetBuffer());
}
catch (WebException wex)
{
//throw new Exception("Unable to locate or access your file.\\nPlease try a different file.");
}
catch (Exception ex)
{
throw new Exception("An error occurred: " + ex);
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
Il semble que votre variable PhotoPath est null ou n'est pas une chaîne d'uri valide. pouvez-vous montrer sa valeur s'il vous plaît? – Lorenzo
Vous ne devriez pas appeler 'UrlDecode', et vous devriez utiliser le paramètre' context'. – SLaks
sa valeur est définie dans ma base de données mais quand je charge mon site j'obtiens l'erreur lors du chargement pas sur la sélection. Je comprendrais s'il l'a fait lors de la sélection. Le photopath est stocké dans mon gridview ressemble à ceci ftp: //192.168.1.17/Image.jpg –