Forum
içinden çıkamadığım bir durum olduğu için size danışmak istedim. video yüklemek için file upload olayı mvc de nasıl oluyor diye araştırdım. ancak bahsedilen örneği elli defa uyguladım hata alıyorum şu şekilde.
Server Error in '/' Application.
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
|
Source File: D:\yemekizle\yemekizle\Controllers\FileUploadController.cs Line: 23
Here is my view that renders a form for uploading files:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> FileUpload</asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>FileUpload</h2> <% using (Html.BeginForm("FileUpload", "FileUpload", FormMethod.Post, new { enctype = "multipart/form-data" })) {%> <input name="uploadFile" type="file" /> <input type="submit" value="Upload File" /><%} %> </asp:Content>
Now, I will write a controller for file upload, and here is my FileUploadController.cs:
[HandleError]public class FileUploadController : Controller{ public ActionResult FileUpload() { return View(); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult FileUpload(HttpPostedFileBase uploadFile) { if (uploadFile.ContentLength > 0) { string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"), Path.GetFileName(uploadFile.FileName)); uploadFile.SaveAs(filePath); } return View(); }}
Merhaba,
Şöyle yapabilirsiniz.
[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase uploadFile)
{
if (uploadFile != null && uploadFile.ContentLength > 0)
{
string filePath = Path.Combine(
Server.MapPath("~/Uploads"),
Path.GetFileName(uploadFile.FileName)
);
uploadFile.SaveAs(filePath);
}
return View();
}
Saygılar,
bu sefer hata vermedi ancak yüklemede yapmadı. yani etkisiz gibi oldu sanki?
Hala çıkamadım işin içinden?
biraz oynama yaparak resimleri yükleyebildim. yani sanırım ufak boyutluları yüklüyor ama büyük boyutluları yüklemiyor gibi anlayamadım nedir sıkıntısı...
arkadaşlar son geldiğim noktada boyutla ilgili ibr sıkıntı olmadığını uzantısı flv olan bir dosyayı yüklemiyor. ancak aynı dosyanın uzantısını jpg yapınca yüklüyor. bu konuda yardımcı olur musunuz?
Merhaba Abdullah,
Yükleyemiyorum derken ne demek istedin ? Yani bir hata mesajı mı bu ? yoksa başka bir şey mi?
Dostum öncelikle çok teşekkür ederim ilgilendiğin için. Geldiğim son noktada durum şu. yeni oluşturduğum ve bu olayı denediğimde çalıştı. ancak benim geliştirmekte olduğum uygulama içinde yeni controller ve view oluşturup aynı şekilde denememe rağmen hata verdi yine. bu sefer acayip bir hata veriyor. yükleme sayfası açılıyor. ancak yükle dediğinde olmayan sayfa gibi birşey diyor. ben bu konu üzerinde birazdaha uğraşayım durumun içinden çıkamazsam detaylıca anlatırım yine buradan. sağolasın.
Girilen resmi göremiyor. Sayfayı tekrar post ediyor olabilir. Normalde mvc'de olmaması gereken bir durum.
Birde web.config üzerinden resim yükleme süresini uzatın. Bu nedenle boşa çıkıyor olabilir. Büyük boyutlu resimleri upload ederken belli bir süre sonra session düşer çünkü.
yok boyut ile alakalı olan bir sorun değil ondan eminim zira ufacık boyutta da yüklüyorum aynı durum var. aynı kodları yeni uygulamada deniyorum sorunsuz 15 mb bile yüklüyor. ancak post olayı dediniz.evet sayfayı post ediyor. bunada eminim acaba etmemesi mi gerekir? ajax olmadan direk bu hali ile kullanınca post etmemelimi. yada çözüm konusunda ne yapabilrim?
he tekrar post ediyor olabilir dediğini yeni farkettim. evet boş çalışan uygulamada resim seçmeden yükl deyince aynı hatayı veriyor. sanki resim seçtiğim halde resimsiz gibi işlem oluyor. çift post mu oluyor ki anlamadım durumu bu konuda yardımcı olabilecek arkadaşımız yokmu?
http://www.youtube.com/watch?v=wOGr7N3itE8&feature=related
arkadaşlar yukarıdaki linkte upload olayını farklı bir şekilde adam yapmış. ben yapınca yine olmadı ancak dikkatimi şu çekti videonun 4. dakikasının 58. saniyesinde benim aldığım hatanın aynısını aldı. ve bu hata üzerine birşeyler söylüyor. anlayamadım ben. bari bu konuda yardımcı olabilecek biri olsun hata ile ilgili dedikleri neler?
Hmm, anladım olayı. Sendekide eğer böyle ise var file dedikten sonra çeviri yapamıyor. Bu nedenle hata veriyor. Adamın yaptığı gibi stringe çevirerek yapabilirsin.
Birde ajax kaynaklı olabilir. Sonuçta ajax varsa orda o kısım hep boş olarak görünüyor olabilir.
Denedikten sonra sonucu tekrar yazarsan sevinirim.
bu adamın yaptığı gibi de olmuyor. ya nedendir bilmiyorum ama boş geliyor resim adı gelmiyor upload sayfasından controllere. yeni uygulamada deniyorum sorunsuz geliyor çalışıyor. ama benim uygulamamda gelmiyor. bu konuda yardımcı olabilecek kimse yokmu bir haftadır çıkamadım işin içinden.
Merhaba,
Controller aksiyonu içinde uploadfile değişkeni atanmış durumda mı?
Merhaba,
1. string filePath = Path.Combine(
2. HttpContext.Server.MapPath("../Uploads"),
3. Path.GetFileName(uploadFile.FileName));
bu satırı aşağıdaki değiştirirmisin.
1. string serverpath = HttpContext.Server.MapPath("../Uploads");
2. string filename = Path.GetFileName(uploadFile.FileName)
3. string filePath = Path.Combine(serverpath, filename);
değiştirdikten sonra hangi satırında çökme yaşıyorsun?
string filename = Path.GetFileName(uploadFile.FileName); bu satırda yani ikinci satırda. tabi ikinci satırın sonuna noktalı virgül konmamış onu koydum. yani kod normal ancak hata orada.