|
|
IN-VESTI DNW!!! Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta. Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni Effettua il pagamento usando IWBank Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione. Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt. Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!! .:DotNetWork Founders:.
|
|
|
|
|
caricare immagini dal DB in un form
Ultimo Post 02 nov 2009 21.17 by jzgrafica. 18 Risposte.
|
Ordina:
|
 Posts:129
 |
| 27 set 2009 11.18 |
|
Come richiesto ecco un nuovo thread....allora, nel thread precedente avete le tabelle e tutto il resto ... ho una pagina sulla quale voglio visualizzare le foto che il mio cliente ha inserito :  .Questo è il codice HTML della pagina,così trovate i nomi dei controlli che ho usato (scusate se non l'ho messo tra i tag
ma facendolo me lo dava bianco in anteprima:<br><br><br> <b><asp:listbox id="LB_VediFoto" runat="server" datasourceid="DB_VediFoto" datatextfield="modello" datavaluefield="modello"></asp:listbox><br> <asp:sqldatasource id="DB_VediFoto" runat="server" connectionstring="<%$ ConnectionStrings:ioscautoConnectionString %>" selectcommand="SELECT [modello] FROM [TabCaratteristiche] ORDER BY [modello]"><br> </asp:sqldatasource><br> <br><br> <br><br> <asp:button id="B_Guarda" runat="server" text="Guarda"><br> <br><br> <br></b><img unselectable="on" src="../../../../../../../desktopmodules/activeforums/activeeditor/officexp/mode.design.gif" align="absmiddle" height="20" width="21"><br><b> <asp:image id="IMG_Vedi" runat="server" height="298px" width="593px"></b><br> <b> <br><br> <br> </asp:image></asp:button></b><br><br>questo invece è il codice che mi interessa , il vb:<br><br><br>
<code>
Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Xml.Linq
Imports System.Data.SqlClient
Imports System.Web.HttpFileCollection
Imports VediFoto
Imports ASP.vedifoto_aspx
Partial Class VediFoto
Inherits System.Web.UI.Page
'Private mssqlSELECT As String = "SELECT foto FROM TabCaratteristiche WHERE modello=@modello and foto=@foto"
Protected Sub B_Guarda_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_Guarda.Click
Dim mssqlSELECT As String = "SELECT foto FROM TabCaratteristiche WHERE modello=@modello and foto=@foto"
Dim HP As String
HP = "Default.aspx"
Dim parap As SqlParameter() = _
New SqlParameter() { _
New SqlParameter("@modello", LB_VediFoto.Text), _
New SqlParameter("@foto", SqlDbType.BigInt)}
Dim cnn As New SqlConnection
cnn.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
Dim cmd As New SqlCommand
cmd.Connection = cnn
cnn.Open()
cmd.CommandText = mssqlSELECT
cmd.Parameters.AddRange(parap)
Dim Foto2 As String
'Foto2 = ???
'/***********************************************************************************************/
'/* Foto2 è il nome della mia foto, cioè la stringa che ho salvato nel DB */
'/* eppure, mi da sempre errore: */
'/* utilizzando Foto2=mssqlSELECT */
'/* utilizzando Foto2=cmd.Parameters.Item("@Foto").Tostring */
'/* a dire il vero, non è un errore vero e proprio, semplicemente non mi fa */
'/* vedere la foto scelta, ma l'iconcina immagine; cliccando con il destro e poi Proprietà */
'/* vedo che ha preso come stringa non il nome del file ma l'istruzione sql oppure il @foto ... */
'/***********************************************************************************************/
IMG_Vedi.ImageUrl = Server.MapPath(".\") & Foto2
cnn.Close()
End Sub
End Class
|
|
|
|
|
 Posts:129
 |
| 27 set 2009 11.31 |
|
Come richiesto ecco un nuovo thread....allora, nel thread precedente avete le tabelle e tutto il resto ... ho una pagina sulla quale voglio visualizzare le foto che il mio cliente ha inserito :  .Questo è il codice HTML della pagina,così trovate i nomi dei controlli che ho usato (scusate se non l'ho messo tra i tag
ma facendolo me lo visualizzava bianco XD:<br><br><code><b> <form id="form1" runat="server"><br> <div><br> <br> <asp:ListBox ID="LB_VediFoto" runat="server" DataSourceID="DB_VediFoto" <br> DataTextField="modello" DataValueField="modello"></asp:ListBox><br> <asp:SqlDataSource ID="DB_VediFoto" runat="server" <br> ConnectionString="<%$ ConnectionStrings:ioscautoConnectionString %>" <br> SelectCommand="SELECT [modello] FROM [TabCaratteristiche] ORDER BY [modello]"><br> </asp:SqlDataSource><br> <br /><br> <br /><br> <asp:Button ID="B_Guarda" runat="server" Text="Guarda" /><br> <br /><br> <br /><br> <asp:Image ID="IMG_Vedi" runat="server" Height="298px" Width="593px" /><br> <br /><br> <br> </div><br> <br></b> Questo invece è il codice VB .. all'interno del codice, commentato tra /****/ , trovate il mio problema...sono sicura che mi manca pochissimo per risolverlo ma non ne vengo proprio fuori ... se qualcuno mi può aiutare... 
Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Xml.Linq
Imports System.Data.SqlClient
Imports System.Web.HttpFileCollection
Imports VediFoto
Imports ASP.vedifoto_aspx
Partial Class VediFoto
Inherits System.Web.UI.Page
Protected Sub B_Guarda_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_Guarda.Click
Dim mssqlSELECT As String = "SELECT foto FROM TabCaratteristiche WHERE modello=@modello and foto=@foto"
Dim HP As String
HP = "Default.aspx"
Dim parap As SqlParameter() = _
New SqlParameter() { _
New SqlParameter("@modello", LB_VediFoto.Text), _
New SqlParameter("@foto", SqlDbType.BigInt)}
Dim cnn As New SqlConnection
cnn.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
Dim cmd As New SqlCommand
cmd.Connection = cnn
cnn.Open()
cmd.CommandText = mssqlSELECT
cmd.Parameters.AddRange(parap)
Dim Foto2 As String
'Foto2 = ???
'/***********************************************************************************************/
'/* Foto2 è il nome della mia foto, cioè la stringa che ho salvato nel DB */
'/* eppure, mi da sempre errore: */
'/* utilizzando Foto2=mssqlSELECT */
'/* utilizzando Foto2=cmd.Parameters.Item("@Foto").Tostring */
'/* a dire il vero, non è un errore vero e proprio, semplicemente non mi fa */
'/* vedere la foto scelta, ma l'iconcina immagine; cliccando con il destro e poi Proprietà */
'/* vedo che ha preso come stringa non il nome del file ma l'istruzione sql oppure il @foto ... */
'/***********************************************************************************************/
IMG_Vedi.ImageUrl = Server.MapPath(".\") & Foto2
cnn.Close()
End Sub
End Class
|
|
|
|
|
 Posts:14
 |
| 29 set 2009 18.06 |
|
Ho appena fatto un progetto con una situazione simile...
Devi prima creare il file dall'array di byte (che arriva direttamente dal db) e solo allora lo richiami con il mappath.
Io per recuperare l'immagine (come file) ho usato questa function:
Friend Function GetFileFromByte(ByVal source() As Byte) As String Try If source Is Nothing Or source.Length <= 0 Then Return Nothing Dim _fs As FileStream ' FileStream Dim _tfn As String ' Nome file creato dal sistema _tfn = My.Computer.FileSystem.GetTempFileName _fs = New FileStream(_tfn, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None) _fs.Write(source, 0, source.Length) _fs.Flush() _fs.Close() Return _tfn Catch ex As Exception ErrorsManager(ex, "ERROR!", MessageBoxIcon.Error, MessageBoxButtons.OK) End Try Return Nothing End Function
Il valore restituito è il nome del file generato. |
|
|
|
|
 Posts:129
 |
| 01 ott 2009 16.23 |
|
Inserito da Roberto Pajalunga su 29 set 2009 19.06
Ho appena fatto un progetto con una situazione simile...
Devi prima creare il file dall'array di byte (che arriva direttamente dal db) e solo allora lo richiami con il mappath.
Come faccio a fare questa cosa ? |
|
|
|
|
 Posts:129
 |
| 01 ott 2009 16.37 |
|
altra domanda scusami  quando richiami la funzione che tu mi hai mostrato, cosa gli passo come valore ? vuole un valore in byte ... ..io non so cosa passargli, nel mio caso.. |
|
|
|
|
 Posts:129
 |
|
 Posts:657
 |
| 04 ott 2009 11.05 |
|
Per prima cosa controlla in debug valore di IMG_Vedi.ImageUrl copialo come url nel browser e se non ottieni l'immagine vuol dire che stai sbagliando il percorso o che non c'è l'immagine sul server.
Per quanto riguarda l'esempio di Roberto, ti può essere utile solo se invece di salvare l'immagine sul disco, la salvi nel database come campo di tipo: Array di bytes. |
|
| Rudy Azzan |
|
|
 Posts:129
 |
| 05 ott 2009 16.56 |
|
ho controllato e mi dail 404 ...il problema è che non trovo l'errore....cmq,se dai un occhio al vecchio thread dal quale mi sono spostata trovi il codice che avevo creato per salvare l'immagine nel DB come stringa del nome...e nel pc come stringa del percorso immagine...il problema è che ora non so se devo recuperarla dal percorso o dalla stringa .. ç__ç anche perchè, se la recupero dal percorso potrebbe non funzionare + se metto le pagine on-line ...
|
|
|
|
|
 Posts:657
 |
| 06 ott 2009 09.04 |
|
404 vuol dire che non trova il file sul server.
Infatti se tu ti fermati in debug su IMG_Vedi.ImageUrl come ti ho scritto, vedrai che ti sta dando un percosrso server in una locazione client.. cosa vuol dire?:
Vuol dire che se vedi l'html dal tuo browsers sul client e cerchi il tag img che hai creato dal server vedrai una cosa simile
img id="immagine" src="C:\Esempi\WebProva\testing.jpg"
Nota: "C:\Esempi\WebProva\testing.jpg" è un percorso fisico sul computer client dove si trova il browser, quindi cono ha niente a che fare col tuo server e non potri mai trovare l'immagine.
Per indicare al browser la locazione server dell'immagine devi scrivere nel seguente modo:
IMG_Vedi.ImageUrl = "http://nomehost/WebProva/" & Foto2;
Oppure in forma abbreviata:
IMG_Vedi.ImageUrl = "~/" & Foto2;
Quindi sul tuo database è bene che non ti salvi il percosro intero del file, ma quello relativo Es.:
Nome host="Mario" Locazione fisica: C:\Inetpub\wwwroot Locazione virtuale URL: http://Mario
Nome sito="WebProva" Locazione fisica: C:\Inetpub\wwwroot\WebProva Locazione virtuale URL: http://Mario/WebProva
Cartella immagini="Immagini" Locazione fisica: C:\Inetpub\wwwroot\WebProva\Immagini Locazione virtuale URL: http://Mario/WebProva/Immagini
Percorso immagine Es.: "MiaFoto1" salvata in campo Foto2 sul db = "Immagini/MiaFoto1.jpg"; Percorso immagine Es.: "MiaFoto2" salvata in campo Foto2 sul db = "Immagini/MiaFoto2.jpg"; Percorso immagine Es.: "MiaFoto3" salvata in campo Foto2 sul db = "Immagini/MiaFoto3.jpg";
Ora se scrivi: IMG_Vedi.ImageUrl = "~/" & Foto2;
,vedrai la tua immagine e la vedrai anche se metti le pagine online. Spero che ti sia tutto chiaro, altrimenti siamo qui! |
|
| Rudy Azzan |
|
|
 Posts:129
 |
| 15 ott 2009 17.31 |
|
tutto come prima, non vedo la mia immagine.....
|
|
|
|
|
 Posts:129
 |
| 15 ott 2009 17.33 |
|
scusa, per sbaglio ho tagliato mezza risposta -.-' Quindi sul tuo database è bene che non ti salvi il percosro intero del file, ma quello relativo Es.:
Nome host="Mario"
Locazione fisica: C:\Inetpub\wwwroot
Locazione virtuale URL: http://Mario
Nome sito="WebProva"
Locazione fisica: C:\Inetpub\wwwroot\WebProva
Locazione virtuale URL: http://Mario/WebProva
Cartella immagini="Immagini"
Locazione fisica: C:\Inetpub\wwwroot\WebProva\Immagini
Locazione virtuale URL: http://Mario/WebProva/Immagini
Percorso immagine Es.: "MiaFoto1" salvata in campo Foto2 sul db = "Immagini/MiaFoto1.jpg";
Percorso immagine Es.: "MiaFoto2" salvata in campo Foto2 sul db = "Immagini/MiaFoto2.jpg";
Percorso immagine Es.: "MiaFoto3" salvata in campo Foto2 sul db = "Immagini/MiaFoto3.jpg";
Ora se scrivi:
IMG_Vedi.ImageUrl = "~/" & Foto2;
,vedrai la tua immagine e la vedrai anche se metti le pagine online.
Spero che ti sia tutto chiaro, altrimenti siamo qui!
ehm, non ho capito una mazza.......ho provato solo a cambiare la parte di codice per puntare all'imagine ( IMG_Vedi.ImageUrl = "~/" & Foto2) ma non funziona, per il semplice fatto che, basandosi sul codice di salvataggio fatto in precedenza, Foto2 come stringa pretende altri dati che non so come dargli.....insomma,tutto come prima -.-' |
|
|
|
|
 Posts:657
 |
| 16 ott 2009 09.15 |
|
Meglio di così non saperi come spiegarti le cose... Che problemi hai esattamente con Foto2? |
|
| Rudy Azzan |
|
|
 Posts:129
 |
| 16 ott 2009 09.17 |
|
se guardi il codice che avevo postato nell'altro thread, vedi che Foto2 dipende da altre stringhe.........che dipendono da una stringa che onn posso inserire in questo form.. ç__ç
|
|
|
|
|
 Posts:657
 |
| 16 ott 2009 09.22 |
|
Ri-posta il codice in questo thread allora.. Così riordiniamo il discorso. |
|
| Rudy Azzan |
|
|
 Posts:129
 |
| 16 ott 2009 19.11 |
|
Inserito da jzgrafica su 22 set 2009 20.06
ora rifaccio altrimenti impazzisco...allora, nella pagina dove il
cliente inserisce le auto, può inesrire anche le foto ( così poi i suoi
clienti potranno vederle, per questo voglio che siano visualizzabili )
...
il codice per salvare le foto in un determinato percorso è il seguente:
If Not FU_foto.HasFile = False Then
Dim filepath As String = FU_foto.PostedFile.FileName Dim pat As String = "\\(?:.+)\\(.+)\.(.+)" Dim r As Regex = New Regex(pat) 'run Dim m As Match = r.Match(filepath) Dim file_ext As String = m.Groups(2).Captures(0).ToString() Dim filename As String = m.Groups(1).Captures(0).ToString() Dim filefoto As String = filename & "." & file_ext
'save the file to the server FU_foto.PostedFile.SaveAs(Server.MapPath(".\") & filefoto) lblstatus.Text = "File Saved to: " & Server.MapPath(".\") & filefoto
E non comprendo questa regexp... ero abituata a php e con php si usano regexp comuni per altre cose..
Comunque,
li c'è il codice per salvare le foto in un percorso e , poi,
nell'istruzione sql, la foto viene salvata con il proprio nome quindi
non con il percorso ) ...
Io devo creare una pagina nella quale
il cliente del mio cliente selezionerà l'auto da una DDL, cliccherà su
un pulsante vedi foto e visualizzerà la foto in questione ( quindi la
foto dell'auto che ha selezionato ) ..
per ora lo faccio in una pagina separata dal resto, poi quando avrò capito come si fa  
il pulsante "vedi foto" comparirà a fianco di ogni auto inserita dal
mio cliente ( in una pagina dove verranno visualizzate tutte le sue
auto, sempre con selezione DDL da parte dei suoi clienti )
IO STO DIVENTANDO SCEMA -.-'
|
|
|
|
|
 Posts:129
 |
| 16 ott 2009 19.11 |
|
E non comprendo questa regexp... ero abituata a php e con php si usano regexp comuni per altre cose.. per questa frase lascia stare, me l'hanno spiegata nel vecchio thread  |
|
|
|
|
 Posts:657
 |
| 17 ott 2009 13.15 |
|
Il codice che hai postato, serve per salvare sul server un file caricato da un client, e tu lo stai salvando sulla root del sito. Quindi se usi IMG_Vedi.ImageUrl = "~/" & Foto2 e se Foto2 che estrai dal DB è uguale a "filefoto" (del codice che hai postato), funziona tutto.
Quindi Foto2 nel tuo database deve essere uguale a filefoto. Ok???
|
|
| Rudy Azzan |
|
|
 Posts:129
 |
| 17 ott 2009 13.39 |
|
si foto2 è uguale a filefoto, però il rpoblema è proprio nello scrivere il codice, perchè l'immagine viene visualizzata in un form diverso da quello dove viene inserita ... ç_ç non so come spiegarmi |
|
|
|
|
 Posts:129
 |
|
| Non sei autorizzato ad inviare una risposta. |
|
Active Forums 4.1
|
|
|