/ / बटन क्लिक पर asynfileupload नियंत्रण फ़ाइल नाम प्राप्त करना - asp.net, AJAX, AJAXcontroltoolkit

बटन क्लिक पर asynfileupload नियंत्रण फ़ाइल नाम प्राप्त करना - asp.net, AJAX, AJAXcontroltoolkit

मैं अपने एएसपीनेट पेज पर AJAXfileupload नियंत्रण का उपयोग कर रहा हूँ। छवि अपलोड होने के बाद, मैं डिस्क पर छवि को सहेजने के लिए अपलोडकंपलेट विधि को कॉल करता हूं और निम्न जावास्क्रिप्ट का उपयोग कर छवि नियंत्रण में दिखाता हूं:

  string fileName = Guid.NewGuid() + Path.GetExtension(PhotoAFU.FileName.Trim()); // encrypt filename

string filePath = Path.Combine(storagePath, fileName);
string fileVirtPath = GetImageUrl(fileName);

int rnd = new Random((int)DateTime.Now.Ticks).Next(1, 1000);
ScriptManager.RegisterClientScriptBlock(PhotoAFU, PhotoAFU.GetType(), "img",
String.Format(
@"top.document.getElementById("{0}").src="/images/{1}?x={2}";
top.document.getElementById("{3}").value = "{4}"",
EditPhotoImage.ClientID,
fileVirtPath,
rnd,
UploadedImageFileNameHF.ClientID,
fileName),
true
);

अब मैं एक सेव बटन पर क्लिक करता हूं और निम्न कोड का उपयोग कर छवि प्राप्त करने का प्रयास करता हूं:

Path.GetFileName(EditPhotoImage.ImageUrl) // shows old image


or


Path.GetFileName(PhotoAFU.FileName) // it shows actual image name not encrypted one

लेकिन वे दोनों पुरानी छवि को वर्तमान नहीं दिखाते हैंछवि या वास्तविक छवि नाम एन्क्रिप्टेड नाम नहीं है। मैं इस विधि में उपरोक्त विधि से फ़ाइल नाम कैसे प्राप्त कर सकता हूं? मैंने व्यूस्टेट का उपयोग करने की कोशिश की लेकिन यह ठीक से काम नहीं कर रहा है।

उत्तर:

जवाब के लिए 2 № 1

आप सर्वर से क्लाइंट में डेटा पास कर सकते हैं PostedUrl की संपत्ति AjaxFileUploadEventArgs पैरामीटर में UploadComplete जेएसओएन के रूप में घटना हैंडलर और इस डेटा को प्राप्त करें OnClientUploadComplete ग्राहक पक्ष पर हैंडलर:

protected void AjaxFileUpload1_OnUploadComplete(object sender, AjaxFileUploadEventArgs e)
{
string fileName = Guid.NewGuid().ToString();
string fileVirtPath = "foobar";

e.PostedUrl = string.Format("{{ fileName: "{0}", imageSrc: "{1}?x={2}" }}",
fileName, fileVirtPath, new Random((int)DateTime.Now.Ticks).Next(1, 1000));
}

function AjaxFileUpload1_OnClientUploadComplete(sender, args) {
var fileInfo = Sys.Serialization.JavaScriptSerializer.deserialize(args.get_postedUrl());
$get("<%= EditPhotoImage.ClientID %>").src = fileInfo.imageSrc;
$get("<%= UploadedImageFileNameHF.ClientID %>").value = fileInfo.fileName;
}