ASP.NET MVC Upload & Save Avatar do DB

ASP.NET MVC Upload & Save Avatar do DB
« kdy: 30. 06. 2014, 20:40:38 »
Hoj,

Mám takový problém, zkouším udělát avatarový system, nebo nevím jak to nazvat.

Potřebují Uploadnout img, přejmenovat nějak např. 4684631235464841351.jpg a uložít do DB k uživateli jako název a typ souboru např. 4684631235464841351.jpg.
Prohledal jsem internet, ale nic mi nefunguje, už jsem toho vyzkoušel hodně.

Taky mám problém že nechápu jak se za boha pracuje s tabulkou AspNetUsers, nechápu jak se na ní napojit.

Byl bych vděčný za rady.
Předem díky :)


Petr_Svetr

Re:ASP.NET MVC Upload & Save Avatar do DB
« Odpověď #1 kdy: 30. 06. 2014, 21:27:36 »
a konkretni problem? nebylo by spis lepsi se ptat na foru, kde se resi programovani pod .NETem?
Ve zkratce - vytvor si controller a view. V kontroleru si pridej metodu, ktera bude akceptovat jeden pozadavek pro metodu http GET (ta jenom vrati view s formularem) bez argumentu a druhou (se stejnym nazvem), ktera bere jeden argument typu HttpPostedFileBase metodou http POST. Do view pridej jednoduchy formular, ktery POSTne soubor do dane metody v kontroleru. V formulari v podstate staci input typu file a tlacitko pro odeslani. Binarni stream z HttpPostedFileBase potom ulozis do souboru, jehoz nazev muzes treba ziskat pres DateTime.Now.Ticks.ToString(), nebo lepe pres Guid.NewGuid.
Co se tyce AspNetUsers, tak mam dojem, ze databaze se v tomhle pripade vubec neresi a data jsou dostupna pres User.Identity a dalsi systemovy struktury. Fyzicky si zapis a cteni do tehle tabulky .NET sefuje sam, programator se o to nestara.

Re:ASP.NET MVC Upload & Save Avatar do DB
« Odpověď #2 kdy: 30. 06. 2014, 21:32:46 »
a konkretni problem? nebylo by spis lepsi se ptat na foru, kde se resi programovani pod .NETem?
Ve zkratce - vytvor si controller a view. V kontroleru si pridej metodu, ktera bude akceptovat jeden pozadavek pro metodu http GET (ta jenom vrati view s formularem) bez argumentu a druhou (se stejnym nazvem), ktera bere jeden argument typu HttpPostedFileBase metodou http POST. Do view pridej jednoduchy formular, ktery POSTne soubor do dane metody v kontroleru. V formulari v podstate staci input typu file a tlacitko pro odeslani. Binarni stream z HttpPostedFileBase potom ulozis do souboru, jehoz nazev muzes treba ziskat pres DateTime.Now.Ticks.ToString(), nebo lepe pres Guid.NewGuid.
Co se tyce AspNetUsers, tak mam dojem, ze databaze se v tomhle pripade vubec neresi a data jsou dostupna pres User.Identity a dalsi systemovy struktury. Fyzicky si zapis a cteni do tehle tabulky .NET sefuje sam, programator se o to nestara.

Díky díky, zkusim to, chodil jsem na dotnetportal.cz, ale tam je to hluchý, většinou někdo odpoví za cca týden. To už do tý doby už mám, nebo jsem už znechucený a nemám chuť to pokračovat.

Petr_Svetr

Re:ASP.NET MVC Upload & Save Avatar do DB
« Odpověď #3 kdy: 30. 06. 2014, 22:22:12 »
jeste drobne doplneni - atribut name toho fajlu z view se musi shodovat s nazvem argumentu ty metody POST - teda neco jako
Kód: [Vybrat]
<input type="file" name="uploadFile" />
a v controlleru
Kód: [Vybrat]
[HttpPost]
public ActionResult Upload(HttpPostedFileBase uploadFile)
{
..
}
potom to musi na 100% fungovat.
Nechce se mi ted spoustet Studio, ale mam dojem, ze HttpPostedFileBase ma primo metodu na ulozeni streamu do souboru, netreba volat namespace System.IO a ukladat to pres nej.

Re:ASP.NET MVC Upload & Save Avatar do DB
« Odpověď #4 kdy: 30. 06. 2014, 23:24:43 »
jeste drobne doplneni - atribut name toho fajlu z view se musi shodovat s nazvem argumentu ty metody POST - teda neco jako
Kód: [Vybrat]
<input type="file" name="uploadFile" />
a v controlleru
Kód: [Vybrat]
[HttpPost]
public ActionResult Upload(HttpPostedFileBase uploadFile)
{
..
}
potom to musi na 100% fungovat.
Nechce se mi ted spoustet Studio, ale mam dojem, ze HttpPostedFileBase ma primo metodu na ulozeni streamu do souboru, netreba volat namespace System.IO a ukladat to pres nej.

Jo, jo to vím, ono vlastně na internetu je ukazane s tim HttpPostedFileBase ale nějak jsem to nepochopil.
Nějak se mi to povedlo udělat s modelem a controllerem mimo account.

Teď jse se zasekl u toho jak zobrazím údaje uživatele.
Chci úplně jednoduše vypsat nick, email , a avatar.

Normalně to je tak že zavolám dbcontext a pomoci .ToList() volám.
Jak je to u Accountu (mam ten co vygeneruje Studio)?

Díky ještě jednou za radu s avatarem  :)


Re:ASP.NET MVC Upload & Save Avatar do DB
« Odpověď #5 kdy: 01. 07. 2014, 01:47:52 »
Dostal jsem se k:

Kód: [Vybrat]
var context = new IdentityDbContext();
            var allUsers = context.Users.ToList();
           

            return View(allUsers);

To by mělo fungovat, ale nějak mi to nejde.

unknown

Re:ASP.NET MVC Upload & Save Avatar do DB
« Odpověď #6 kdy: 01. 07. 2014, 07:22:17 »
Neni divu. Radeji to zabal  ::)

Re:ASP.NET MVC Upload & Save Avatar do DB
« Odpověď #7 kdy: 01. 07. 2014, 13:28:29 »
S takový přístupem se daleko nedostaneš, proč bych to měl zabalit?
Na chybách se člověk učí. Pokud mi něco nejde nemám problém se zeptat ikdyž pak vím že to bylo uplně primitivní.