upload di un'immagine su spazio aruba
-
28 апреля 2011 г. 18:15
ciao a tutti,
tramite gli strumenti messi a disposizione da asp.net ho creato una piccola applicazione che mi permette di fare l'upload dell'immagine in una cartella del sito e contemporaneamente alcune operazioni sul DB, in locale funziona tutto alla perfezione sul web no, sapete se ci sono problemi noti con aruba a riguardo?
Все ответы
-
28 апреля 2011 г. 19:27
Per default su Aruba hai i diritti di sola lettura, i diritti di lettura/scrittura sono solo per la cartella Public.
Prova a scrivere nella cartella public o a impostare i diritti di scrittura sulla cartella voluta tramite il pannello di controllo.
Ciao
Luca Congiu (congiuluc)- Предложено в качестве ответа Sarati Roberto 29 апреля 2011 г. 7:41
-
1 мая 2011 г. 17:32
Confermo quanto detto da luca, nel mio caso - aggiungo anche - che la cartella Public su aruba ha il nome App_Data (devi sincerarti te quale sia la cartella con i privilegi di scrittura).
Quando ti capitano cose di questo genere, puoi avviare l'applicativo web in modalità debug (lo fai da web.config), abilitare anche la visualizzazzione del messaggi di errore da remoto (sempre lo fai da web.config), e vedere che ti dice. In questo modo centri subito il problema senza andare ad ipotesi.
Open source vb.NET CMS+Forum+Gallery+PayPall all in one http://cmsaspnet.com/
Grazie e cosa devo aggiungere al web.config per fare ciò?
-
1 мая 2011 г. 17:48
Ciao a tutti,
io uso solo Aruba come provider e carico benissimamente le immagini e/o altri files sul server.
I files vanno nella cartella "Public", mentre il db va nella cartella "App_Data".
Questo è il codice che uso per caricare una immagine sul server:
protected void BtnFoto_Click(object sender, EventArgs e)
{
int MaxLength = 1204800;
int MaxWidth = 600;
int MaxHeight = 450;
string foto = inputFile.Value;
//controllo la dimensione del file
if (inputFile.PostedFile.ContentLength > MaxLength)
{
Results.InnerHtml = "Il file è di dimensioni troppo elevate. Max " + MaxLength / 1024 + "KB";
//controllo il tipo di file caricato in bytes
}
else if (!inputFile.PostedFile.ContentType.StartsWith("image"))
{
Results.InnerHtml = "<font color='red'>Il file non è valido. Dev'essere un'immagine.</font>";}
else
{
System.Drawing.Image img = System.Drawing.Image.FromStream(inputFile.PostedFile.InputStream);inputFile.PostedFile.SaveAs(Server.MapPath("/Public/" + inputFile.Value));
img.Dispose();
}}
Eventualmente se hai problemi scrivi tranquillamente.
Ciao -
1 мая 2011 г. 18:28
eliminando la parte di codice riguardante l'insert nel DB questo è quello che faccio io per cercare di caricare l'immagine sul web, premetto che utilizzo l'oggeto <asp:FileUpload>in locale funziona sul web no, ho seguito il vostro consiglio sono andato in aruba control panel nel file manager e ho attivato il permesso di scrittura anche per la cartella che voglio utilizzare per l'upload ma non funziona ancora// ottengo il path della cartella principale dell'applicazione string filePath = Request.PhysicalApplicationPath; // aggiungo il nome della cartella di destinazione filePath += "images/catalogo/"; // controllo se il controllo FileUpload2 contiene un file da caricare if (FileUpload2.HasFile) { // controllo la dimensione del file if (FileUpload2.PostedFile.ContentLength > 3000000) Response.Write("Il file non può essere caricato perché supera 3MB!"); else { // aggiorno il path del file filePath += TxtNome.Text; if (System.IO.File.Exists(filePath)) { // il file è già sul server Response.Write("Il file non può essere caricato perché già presente sul server!"); } else { string path = FileUpload2.FileName; // salvo il file nel percorso calcolato FileUpload2.PostedFile.SaveAs(filePath);
-
2 мая 2011 г. 15:36
per capirci nel mio caso questo è il percorso in cui si trova la pagina aspx con il fileupload2 /amministratore/fileupload.aspx
e l'immagine seguendo il tuo consiglio la devo caricare in app_data/images/catalogo/ quindi devo modificare il mio codice in questo modo:
è corretto?// ottengo il path della cartella principale dell'applicazione string filePath = Server.mappath(".."); // aggiungo il nome della cartella di destinazione filePath += "app_data/images/catalogo/"; // controllo se il controllo FileUpload2 contiene un file da caricare if (FileUpload2.HasFile) { // controllo la dimensione del file if (FileUpload2.PostedFile.ContentLength > 3000000) Response.Write("Il file non può essere caricato perché supera 3MB!"); else { // aggiorno il path del file filePath += TxtNome.Text; if (System.IO.File.Exists(filePath)) { // il file è già sul server Response.Write("Il file non può essere caricato perché già presente sul server!"); } else { string path = FileUpload2.FileName; // salvo il file nel percorso calcolato FileUpload2.PostedFile.SaveAs(filePath);
-
2 мая 2011 г. 17:52
Visto così dovrebbe essere corretto. Detto che:
1) puoi fare direttamente string filePath = Server.mappath("~/app_data/images/catalogo/");
2) La grandezza del file (3000000) puoi (e secondo me devi) metterla nel web.config.
vedi qui per un esempio (http://www.bloggingdeveloper.com/post/Limiting-the-File-Upload-Size-in-ASPNET.aspx).3) su Aruba ci sono di default 2 cartelle con scrittura: app_data e public. Detto questo puoi benissimo aggiungerle e modificarle tu a tuo piacimento tramite tool presente nel pannello di controllo.
Non so cosa succeda se le cartelle non esistono. Quindi io mi assicurerei che images/catalogo esistano in app_data.4) ricorda l'utente non può leggere in app_data. Se metti una immagine in app_data non puoi mettere un url diretto nelle pagine web che puntano a tali immagini. Per far questo devi farti un Handler. Altrimenti, se la security non è un problema, puoi benissimo metterle in public.
5) quoto quanto detto sopra negli altri post.
6) Se non funziona, imposta nel CustomErrors del webconfig la modalità Off, almeno riesci a capire l'errore (permessi, cartelle mancanti, path errato ecc ecc)
-
4 мая 2011 г. 13:44
Confermo ciò che ha detto Roberto, tengo a precisare che la directory App_Data è una directory riservata e di solito è utilizzata per contenere i dati di cui ha bisogno l'applicazione vedi file mdf, mdb, xml etc.
Questa directory proprio perchè "riservata", normalmente da errore 403 se si cerca di visualizzare un file al suo interno.
Perciò, poichè i file in oggetto sono delle immagini, consiglierei di utilizzare la cartella Public o di creare una nuova cartella sul server Aruba e dargli i permessi di lettura e scrittura.
Ciao
Luca Congiu (congiuluc) -
5 мая 2011 г. 16:51
grazie a tutti applicando i dovuti permessi alla cartella che mi interessava tramite il control panel di aruba e modificando
Request.PhysicalApplicationPath;
sono riuscito a risolvere il problema :)
-
2 мая 2012 г. 8:11Io non riesco proprio a modificare la mie foto su aruba, come posso fare?
-
2 мая 2012 г. 8:30parlo comunque di un hosting linux
-
3 мая 2012 г. 19:38Ciao Alekurt, cosa intendi per modificare le foto?
Intendi caricarle sul server? Viene visualòizzato un errore?
Dacci maggiori informazioni per capire meglio il tuo problema.
Ciao

