- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [ASP] upload di più immagini con asp e access
-
[ASP] upload di più immagini con asp e access
Buongiorno a tutti, prima di postare la mia richiesta comunico di aver guardato nel furum ma di non aver trovato ciò che fa al caso mio.
Devo realizzare l'area riservata per un cliente (agenzia immobiliare) che gli permetterà di modificare le pagine del proprio sito.
Più precisamente, per ciascuna abitazione, dovrà poter caricare sia testo che immagini.Per il testo non ci sono problemi, e non ce ne sarebbero nemmeno per le immagini se dovesse caricarne solo una.
Deve poterne caricare almeno 6 e sinceramente non saprei come fare.Attraverso un mudulo, dovrebbe poter caricare le varie immagini:
- vengono inserite in una cartella
- sul db access, nei campi di tabella relativi alle img, deve comparire l'indirizzo della cartella dove sono contenute;
- aprendo la pagina asp definitiva il sistema dovrebbe recuperare le immagini, sistemarle in determinati spazi (con determinate dimensioni) e se l'utente vuole vederne un ingrandimento dovrebbe semplicemente cliccarci sopra e si dovrebbe aprire una popup
Non sono praticissimo di asp e quindi vi chiedo un po' di pazienza.
Grazie per l'aiuto.
Se servono altre info fatemi sapere.
-
controlla se il tuo hosting supporta aspSmartUpload .
E' un componente gratuito e largamente supportato dai server WIN.E' possibile fare upload di singoli file, multipli o blob nel db molto semplicemente.
sono inoltre presenti una miriade di esempi sulla rete riguardo questo componente.
-
sono hostato su aruba....sai dirmi se supporta la componente che mi hai indicato?
grazie
-
fai una pagina asp ed incolla questo codice
<% Dim mySmartUpload Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") %>
Se lanciando la pagina non ti restituisce errore significa che è supportato.
Se dovresti ricevere un errore prova con il persits Upload<% Set Upload = Server.CreateObject("Persits.Upload.1") %>
se anche questo componente non è supportato potresti adoperare un upload in asp classico seguendo questo tutorial (sono tre paginette da leggere con un esempio pratico)
http://www.stardeveloper.com/articles/display.html?article=2001042501&page=1
-
Grazie 1000.
Appena ho un attimo di tempo ci dò un'occhiata e ti faccio sapere.
-
puoi utilizzare la classe di baol che consiglio vivamente in quanto non necessita di componenti esterni e ti permete di fare proprio quello che vuoi te
-
per hwlab
ho provato a controllare se aruba supporta le componenti che mi hai indicato ma nisba: in entrambi i casi mi da errore "Server.CreateObject Failed"Ho seguito poi le indicazioni su start developer e:
- nel primo esempio "File uploading to server hard disk" la cosa funziona ma non fa al caso mio in quanto sul db non ho trovato traccia del file uploadato e nella pagina in cui visualizzo l'immagine mette un link e per il mio caso non va bene.
- nel secondo esempio "File uploading to Microsoft Access database." ho provato ad uploadare i files creati ma sinceramente tra file .bat, .config e .dll non ci capisco nulla ed infatti mi da errore.
Ora proverò a guardare la classe di baol suggerita da Legolas anche se a dire il vero mi scontro sempre con gli stessi problemi: gli script che scarico funzionano sempre alla perfezione ma poi mi perdo nell'adattarli alle mie esigenze.
-
Ciao Lego, grazie per il suggerimento. Ho scaricato lo script ed in parte è proprio ciò di cui avevo bisogno.
Ovviamente ho non pochi problemi nell'adattare il codice alle mie esigenze.Riesco a fare l'upload delle immagini nella cartella public sul server.
I problemi sorgono con il db access.
Ho creato una tab con i seguenti campi:
id
campo
percorso
campo1
percorso1
campo2
percorso2Quando eseguo l'upload il campo "percorso" si popola con il seguente percorso:
d:\inetpub\webs\nomesito\public\immagine.jpg
e il campo "campo" rimane vuoto.Prevedendo poi il form per l'upload la possibilità di caricare 5 img ho provato a inserirle tutte e sinceramente pensavo che sul db si aggiungesse un solo record contenente, per ciascun campo "percorso" il percorso della posizione di ciscuna img caricata e invece mi aggiunge 5 records e nei campi "percorso", "percorso1", "percorso2", "p...3", "p...4" mi inserisce sempre lo stesso percorso per ciascuna img caricata.
Non capisco, e oltretutto non saprei come fare per recuperre e dunque visualizzare l'img attraverso una nuova pagina asp utilizzando il percorso salvato nel campo del db:
<%strURL=rs("Percorso")%>
....
<img src="<%=strURL%>">
NON FUNZIONA!Ti ringrazio in anticipo per il prezioso aiuto che vorrai gentilmente offrirmi.
-
e ci mancherebbe pure che funzioni :D:D
te stai dando all'immagine il percorso dell'hard disk... c:/ecc...
mentre il tag img vuole il percorso web http://ecc.....Per il resto ti posso assicurareche la classe è fatta molto bene e non necessita di adattamenti, però bisogna un po' studiarla e capire il funzionamento.
Nello zip ci sono degli esempi per realizzare anche upload multipli, ti consiglio di dargli un'occhiata.
Il campo percorso ti rimane sempre lo stesso perchè non cicli, prova a ciclare con un while mentre stai facendo l'upload
Ciao
-
Ok Lego, il file a cui mi riferisco per l'upload multiplo è prorpio quello di cui parli --> esempio_form.htm.
Il codice è questo:
<FORM METHOD="Post" enctype="multipart/form-data" ACTION="Upload_Database.asp">
File : <INPUT TYPE="file" NAME="Campo1"><BR>
File : <INPUT TYPE="file" NAME="Campo2"><BR>
File : <INPUT TYPE="file" NAME="Campo3"><BR>
File : <INPUT TYPE="file" NAME="Campo4"><BR>
File : <INPUT TYPE="file" NAME="Campo5"><BR>
<INPUT TYPE="submit" NAME="Enter">
</FORM>che richiama il file Upload_Database.asp:
<!--#include file="upload.asp"-->
<%
Dim oUpload
Set oUpload= new cUpload
With oUpload
.SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("mdb-database/news.mdb"),"SELECT Top 1 * FROM news"
.EnabledAspUpload = False
.EnabledImageSize = False
.EnabledLog = False
.AutoRename = True
.Overwrite = False
.SetPath "\public"
.Load
.MoveFirst
if .EOF then
NumFiles = .Count()
Response.write "0 Files caricati su " & NumFiles &" : controlla le dimensioni e il tipo di file."
else
.Database.Open()
While Not .EOF
.Save
response.Write "il file " & .GetFileName &" è stato salvato <br>"
.Database.Fields("Percorso") = .GetCompletePathFile
.Database.Fields("Percorso2") = .GetCompletePathFile
.Database.Fields("Percorso3") = .GetCompletePathFile
.Database.Fields("Percorso4") = .GetCompletePathFile
.Database.Fields("Percorso5") = .GetCompletePathFile
'Inserimento
.Database.AddNew()
.MoveNext
Wend
end if
End With
Set oUpload = Nothing
%>Non capisco:
- come e dove settare il path web per salvarlo nel campo del db
- non saprei come fare il ciclo "while" di cui mi parli.
Potresti aiutarmi a risolvere questi problemi?
Come avrai intiuto non me la cavo molto bene con la programmazione.Grazie per la pazienza.