PDA

View Full Version : مشکل FileUpload



zahraaaaaa
سه شنبه 10 تیر 1393, 13:15 عصر
سلام
من دارم ازفایل آپلود تو UpdatePanel استفاده میکنم ولی FileUpload از کار افتاده...از تگ <Triggers> هم استفاده کردم ولی فایده ای نداشت..لطفا کمک کنید کارم گیره..



<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button2" runat="server" Text="upload" onclick="Button2_Click" />
</ContentTemplate>
<Triggers>
<asp:postbacktrigger ControlID="Button2" />
</Triggers>
</asp:UpdatePanel>

artiger
سه شنبه 10 تیر 1393, 13:46 عصر
سلام

کد زیر مشکلتونو حل می کنه. (PostBackTrigger)

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick = "Upload_File" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID = "btnUpload" />
</Triggers>
</asp:UpdatePanel>

zahraaaaaa
سه شنبه 10 تیر 1393, 14:02 عصر
ممنون از جوابتون.ولی جواب نداد

artiger
سه شنبه 10 تیر 1393, 14:19 عصر
مثالی ضمیمه شد...

nice_boy_a
سه شنبه 10 تیر 1393, 14:33 عصر
مثالی ضمیمه شد...

دوست عزیز میشه بگی این مثالی که گذاشتی دقیقا چه جوری فایلو آپلود میکنه ؟:متفکر:

zahraaaaaa
سه شنبه 10 تیر 1393, 14:37 عصر
منم متوجه نشدم چطور آپلود میکنه

zahraaaaaa
سه شنبه 10 تیر 1393, 15:13 عصر
کسی نمیتونه به من کمک کنه؟؟:ناراحت:

nice_boy_a
سه شنبه 10 تیر 1393, 15:16 عصر
اگه از postbacktrigger هم استفاده بشه، صفحه رفرش میشه! به نظر من تنها روش استفاده از کامپوننت های دیگه ست!

zahraaaaaa
سه شنبه 10 تیر 1393, 17:38 عصر
کسی نبود راهنمایی کنه؟؟:ناراحت:

ahmad156
سه شنبه 10 تیر 1393, 20:57 عصر
دوست عزیز FileUpload خود ASP.NET فقط با PostBack کار میکنه.شما میتونین از ajaxToolkit استفاده کنین که اون رو هم پیشنهاد نمیکنم و بهتره با همون PostBack کنار بیاین

artiger
چهارشنبه 11 تیر 1393, 09:06 صبح
دوست عزیز میشه بگی این مثالی که گذاشتی دقیقا چه جوری فایلو آپلود میکنه ؟:متفکر:

فکر می کردم نیاز به کد کامل نیست و با سرنخ میرین جلو.
اینم از پروژه آپلود کامل...

nice_boy_a
چهارشنبه 11 تیر 1393, 12:57 عصر
فکر می کردم نیاز به کد کامل نیست و با سرنخ میرین جلو.
اینم از پروژه آپلود کامل...

ممنون دوست عزیز. هدف این بود که صفحه رفرش نشه! ولی بازم میشه.

rezadana
چهارشنبه 11 تیر 1393, 14:25 عصر
سلام شما میتونید از جاوا اسکریپت هم استفاده کنید .مانند کدهای ذیل.موفق باشید



<script>
$(documnet).ready(function(){('#mul_FileUpload').c hange(function () {
onDrop(this);
});});

function onDrop(e) {
var files=null;
ReadFile(files);
}
function ReadFile(files){
var file=files[0];
var filename = getFileName(file.name);
var reader = new FileReader();
reader.onerror = function (e) {
alert('Error code: ' + e.target.error);
};// Create a closure to capture the file information.
reader.onload = (function (aFile) {
return function (evt) {
var fd = new window.FormData();
fd.append('file', file);fd.append('filename', filename );
$.ajax({
url: "UploadFile.ashx",
type: 'POST',
processData: false,
contentType: false,
data: fd,
responseType: "json",
success: function (result) {
if (result.Operation == 'success') {
alert('File Uploaded Successfully');
}
},
error: function (fail) {

}
});
}
})(file);
reader.readAsDataURL(file);
}
}
function getFileName(fullPath) {
var startIndex = (fullPath.indexOf('\\') >= 0 ? fullPath.lastIndexOf('\\') : fullPath.lastIndexOf('/'));
var filename = fullPath.substring(startIndex);
if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0) {
filename = filename.substring(1);
}
return filename;
}

</script>
<input type="file" id="mul_FileUpload" />


و کلاس مربوط به آپلود.


public class UploadFile : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
if (context.Request != null)
{
OperationDetail obj_Op = new OperationDetail();

if (context.Request.Files["file"] != null && context.Request.Files["file"].ContentLength > 0 )
{
HttpPostedFile postedFile = context.Request.Files["file"];
obj_Op.FilePath = Guid.NewGuid().ToString() + ".jpg";
postedFile.SaveAs(context.Server.MapPath("~/upload/temp/")+obj_Op.FilePath);
obj_Op.Operation = "success";
obj_Op.FileName = postedFile.FileName;
obj_Op.Index = Convert.ToInt32(context.Request["indexer"]);
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
string serobj_Op = javaScriptSerializer.Serialize(obj_Op);
context.Response.ContentType = "application/json; charset=utf-8";
context.Response.Write(serobj_Op);
}
}
else {

}
}


}
public class OperationDetail
{
public string FilePath{get;set;}
public string Operation { get; set; }
public string FileName { get; set; }
public int Index { get; set; }
}