jQuery AjaxForm plugin 을 사용하여 사용자가 서버에로드하도록 선택한 이미지 미리보기를 만듭니다. HTTP 처리기를 사용하여 이미지 미리보기에 사용되는 임시 이미지 파일을 만듭니다. FileUpload 컨트롤의 클라이언트 측 'onchange'이벤트에 대한 응답으로 이미지 미리보기가 성공적으로 만들어집니다.ASP.NET 문제에서 jQuery AjaxForm을 사용합니다.
전체 폼 (UploadImageToServerStep1.aspx)을 서버로 보내는 단추가 있습니다. 서버 측 Click 이벤트에서 다른 페이지 (UploadImageToServerStep1.aspx2)로 컨트롤을 전송하려고하면 컨트롤이 다른 페이지 코드 파일 (컨트롤이 해당 페이지 Page_Load 이벤트에 도착 함)에 도달하지만 페이지는 그렇지 않습니다. 대신 - 참조 페이지가 표시됩니다 (UploadImageToServerStep1.aspx) (컨트롤은 해당 페이지의 페이지로드 이벤트로 이동하지 않습니다).
UploadImageToServerStep1.aspx의 JS 코드 : < 스크립트 TYPE = "텍스트/자바 스크립트">
VAR 미리 = { ImagePreview : 함수 (imageId) {
var formId = '<%= Form.ClientID %>';
var fileUploadId = '<%= FileUpload1.UniqueID %>';
var action = $('#' + formId).attr('action');
var imageName = $("input[serverId = 'FileUpload1']").val();
$('#' + formId).attr('action', './HttpHandlers/ImagesHandler.ashx?action=imagePreview&f=' + fileUploadId + '&i=' + imageName);
$('#' + formId).ajaxForm(function() {
$('#' + imageId).attr('src', './HttpHandlers/ImagesHandler.ashx?action=imagePreview&f=' + fileUploadId + '&i=' + imageName);
$('#' + imageId).show();
$('#' + formId).attr('action', action);
});
$('#' + formId).submit();
}
}; </script>/
의 HttpHandler에서
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FileUpload1.Attributes.Add("onchange", "preview.ImagePreview('htmlImgPreview');");
FileUpload1.Attributes.Add("serverId", "FileUpload1");
}
}
protected void btnNext_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Response.Redirect("UploadImageToServerStep2.aspx");
//Server.Transfer("UploadImageToServerStep2.aspx");
}
}
UploadImageToServerStep1.aspx.cs
에서 :case "imagePreview":
string f = context.Request.QueryString.Get("f");
string i = context.Request.QueryString.Get("i");
const string uploadImageTempPath = "~/Images/TempImages/";
if (!string.IsNullOrEmpty(context.Request.QueryString.Get("i")) && context.Request.Files[f] != null)
{
HttpPostedFile file = context.Request.Files[f];
SaveImage(context, file, uploadImageTempPath, i);
}
context.Response.ContentType = GetContentType(context.Session["fileName"].ToString());
if (context.Session["fileName"] == null || context.Request["i"] == null)
{
return;
}
byte[] byteArray1 =
System.IO.File.ReadAllBytes(
context.Request.MapPath(string.Format("{0}{1}", uploadImageTempPath, context.Session["fileName"])));
context.Response.BinaryWrite(byteArray1);
break;
}
사람이 그 행동의 원인이 무엇인지 적어주세요 수 나는이 문제를 어떻게 해결할 수 문제
감사합니다.