View Full Version : سوال: آپلود فایل
elham366
شنبه 07 آبان 1390, 19:37 عصر
سلام
میشه یه نفر آپلود کردن فایل با input رو توضیح بده؟ با بگید که چه جوری از این plug in استفاده کنم! برای asp.net میخوام
http://valums.com/ajax-upload/
ممنون
ricky22
شنبه 07 آبان 1390, 21:17 عصر
کامنت 17 همان لینکی که درج گردید یک handler برای استفاده در ASP.NET نوشته :
<%@ WebHandler Language="C#" Class="FileUploader" %>
using System;
using System.Web;
using System.IO;
public class FileUploader : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string result = "{\"success\":true}";
string path = System.Configuration.ConfigurationManager.AppSetti ngs["Files"].ToString();
string saveLocation = string.Empty;
string fileName = string.Empty;
try
{
int length = 4096;
int bytesRead = 0;
Byte[] buffer = new Byte[length];
//This works with Chrome/FF/Safari
// get the name from qqfile url parameter here
fileName = context.Request["params"];
saveLocation = context.Server.MapPath(path) + "\\" + fileName;
try
{
using (FileStream fileStream = new FileStream(saveLocation, FileMode.Create))
{
do
{
bytesRead = context.Request.InputStream.Read(buffer, 0, length);
fileStream.Write(buffer, 0, bytesRead);
}
while (bytesRead > 0);
}
}
catch (UnauthorizedAccessException ex)
{
// log error hinting to set the write permission of ASPNET or the identity accessing the code
result = result.Replace("true","false, \"error\":" + ex.Message + " " + ex.InnerException);
}
}
catch
{
try
{
//This works with IE
fileName = Path.GetFileName(context.Request.Files[0].FileName);
saveLocation = context.Server.MapPath(path) + "\\" + fileName;
context.Request.Files[0].SaveAs(saveLocation);
}
catch (Exception ex)
{
result = result.Replace("true", "false, \"error\":" + ex.Message + " " + ex.InnerException);
}
}
context.Response.Write(result);
}
public bool IsReusable {
get {
return false;
}
}
}
elham366
شنبه 07 آبان 1390, 21:53 عصر
بله ممنون
من آدرس هندلر رو به action دادم ولی بعدش نمیدونم باید چیکار کنم
یعنی فایل آپلود نمیشه اصلا!
اینجوری نوشتم:
<div id="file-uploader">
<noscript> <p>Please enable JavaScript to use file uploader.</p> </noscript>
</div>
<script src="../Scripts/fileuploader.js" type="text/javascript"></script>
<script type="text/javascript">
function createUploader(){
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
action: '../do-nothing.htm',
debug: true
});
}
window.onload = createUploader;
</script>
var uploader = new qq.FileUploader({ element: document.getElementById('file-uploader'),
action: '../Handlers/Uploader.ashx' });
ولی کار نمیکنه! file dialog باز میشه و وقتی فایل رو انتخاب میکنم هیچ اتفاقی نمیوفته!
ricky22
شنبه 07 آبان 1390, 21:56 عصر
از فایر باگ استفاده کنید خطا رو اینجا قرار بدید که بشه مشکل رو فهمید.
یا کل سورس را ضمیمه کنید.
elham366
شنبه 07 آبان 1390, 22:12 عصر
مشکلش اینه:
The HTTP verb POST used to access path '/MyProject/do-nothing.htm' is not allowed
فایل
do-nothing.htm رو کپی کردم کنار پروژه ولی باز هم اینو میگه!
elham366
شنبه 07 آبان 1390, 23:06 عصر
مشکلش برطرف شد!
به جای فایل htmlی از aspx استفاده کردم!
success:true میده ولی هنوز فایل آپلود شده ای وجود نداره!
این var uploader چیه؟ نباید کاری انجام بدم؟ چون توی توضیحاتش نوشته که qq.FileUploaderلیست فایلها رو بر می گردونه
ricky22
یک شنبه 08 آبان 1390, 00:03 صبح
کنترلی با شناسه ی file-uploader در سورس شما وجود دارد ؟
--
elham366
یک شنبه 08 آبان 1390, 00:20 صبح
همون div هست
الان که توی هندلر break point میذارم اصلا توی هندلر نمیره!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.