rinominare immagini con form asp

Stato
Chiusa ad ulteriori risposte.

magomer1

Nuovo Utente
19 Mag 2012
6
0
0
Ciao a tutti.
Avrei bisogno di rinominare delle immagini prese da un db o da una directory con un nome scelto di volta in volta attravesro un form.
Con quel poco che conosco riesco a visualizzare delle immagini il cui percorso è salvato in un campo del DB, ma non ho idea di come poi cambiare il loro nome.
Avete qualche indicazione ?
Grazie in anticipo
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

Asp non ha un medoto Rename dell'oggetto FileSystem, ha un metodo Move, per spostare un file da una cartella a un'altra.

Con Move puoi spostare un file nella stessa directory dando un nuovo nome, es: muovi immagine.gif (che si trova in cartella chiamata immagini) in

nuovaimmagine.gif , immagine.gif verrà cancellata e il Move crea la nuova immagine nuovaimmagine.gif (che è la stessa). Se fai un Move da una cartella a un'altra il file verrà cancellato dalla cartella di provenienza e spostato in quella destinazione.

NOTA: la cartella che contiene le immagini deve avere i permessi in scrittura.


Per il DB hai il path dell'immagine in formato testo es: immagini/immagine.gif , che dopo metti con es: <%=rs("nome_campo")%> nel tag img

<img src="<%=rs("nome_campo")%>" width="" height="" border=""> o l'immagine nel db in un campo "Oggetto OLE" ?

Valeria.
 

magomer1

Nuovo Utente
19 Mag 2012
6
0
0
Ciao Valeria e grazie per l'interessamento.
Ci sono sia per il move sia per visualizzare l'immagine da DB come mi hai suggerito.
Complico un pò la richiesta.
DB access con un campo contenente tutti i nomi e il relativo percorso nome del campo "originale"
Secondo campo, "nuovo", con tutti i nomi nuovi corrispondenti cioè :
ID = 1
Originale = vecchio.jpg
nuovo = casa.jpg

come imposto la pagina asp che mi dovrà "spostare" il file vecchio.jpg con il nome casa.jpg per ogni record ID=1, ID=2, ID=3 etc. etc ?
spero di essermi riuscito a spiegare.
Grazie ancora.
Ciao.
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

la tua richiesta sembra di scrivere il o i codici da utilizzare per il tuo scopo.

Non hai una base o esempi già fatti da modificare.

->Con quel poco che conosco riesco a visualizzare delle immagini il cui percorso è salvato in un campo del DB.<-

Visualizzi i dati di una tabella tramite codice asp in un campo di un form perché è questo che ti serve come inizio, dopo cambi il dato che visualizzi nel campo del form con quello nuovo UPDATE.

Per lo spostamento dell'immagine (rinomina) hai conoscenze dell'oggetto File System Object, un oggetto COM in grado di accedere alle principali funzioni per la manipolazione del file system, o l'oggetto TextStream usato per leggere e scrivere sul file in questione.

I vari metodi per la gestione dei DB, INSERT INTO, UPDATE nome_campo o SET, DELETE

Questo è per invogliarti a imparare ASP se devi utilizzarlo per le tue applicazioni.

Ti posto un esempio per rinominare o spostare un file con FSO.

Codice:
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.moveFile Server.MapPath("cartella/vecchio_file.jpg"), Server.MapPath("cartella/nuovo_file.jpg")
Set fso = Nothing
%>

Con queste tre righe di codice rinomini un file in questo caso vecchio_file.jpg verrà sostituito con nuovo_file.jpg

Fatto da in form è leggermente più complicato, leggermente in quanto oltre ad utilizzare fso.moveFile, c'è la gestione degli errori e l'implementazione in due campi txt di un form.

Per il db devi utilizzare UPDATE in una sequel SQL,

impostare la connessione, impostare l'oggetto recordset, impostare i nomi del campi dei form dove recuperare e visualizzare i dati, modificarli e sostituirli con i nuovi.

Non so le tue conoscienze di questo linguaggio e se sei in grado di farlo da solo.

Fai alcune prove e posta i risultati, dove incontri problemi o altro, e sarò ben felice di aiutarti.

Fare il lavoro (script preconfezionati e pronti per essere utilizzati) No.

Saluti, Valeria.
 

magomer1

Nuovo Utente
19 Mag 2012
6
0
0
Non volevo un codice già fatto, solo uno spunto su come iniziare e adesso ho provato così :

<%
Dim fso, cartella, file
set fso = Server.CreateObject("scripting.FileSystemObject")
set cartella = fso.GetFolder("D:\sitosmi\ren\mdb\immagini\")
filePath = Server.MapPath("mdb/immagini/" )

for each file in cartella.files

%>
<td><%=file.Name%></td>




<form method="GET" action="move.asp">

<table>
<tr>
<input type="text" name="percorso" value= <%=(filePath) & "\" & (file.name)%> size="60" ></td>

<input type="text" name="nuovopercorso" value= <%=(filePath) & "\casa\" %> size="60" ></td>

<td>Codice:</td><input type="text" name="codice" size="60" ></td>
<%
next
%>
</table>

</table>
<input type="submit" value="MODIFICA DATI!">
</form>


In questa pagina recupero percorso e nome del file vecchio "percorso", visualizzo il "nuovopercorso" e digito il nuovo nome in "codice".
Premendo il pulsante modifica dati mi rimanda alla pagina move.asp dove copio il file nel nuovo percorso :

<%
' Declaring Variables -->
Dim percorso, codice, nuovopercorso
Dim fs
' Creo una istanza dell'offetto FileSystemObject
Set fs = Server.CreateObject("Scripting.FileSystemObject")


'Retriving variables ---
PERCORSO=request.querystring("percorso")
nuovoPERCORSO=request.querystring("nuovopercorso")
codice=request.querystring("codice")


' sposto il file pagina.html nella nuova cartella
fs.copyfile "" & (PERCORSO) & "", "" & (nuovoPERCORSO) & " " & (codice) & ""


Response.Write nuovopercorso



<%


Così funziona se metto un solo file nel vecchio percorso perchè non ho idea di dove inserire un ciclo (for each o for next) per far si che possa spostare un solo file alla volta.
Hai suggerimenti ?
Intanto sto provando "a caso" .......
Grazie.

Marco
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

non capisco cosa vuoi ottenere, prima dici rinominare un file, non è possibile come già detto se usi MoveFile

il file verrà cancellato dalla cartella dove si trova e spostato in un'altra, se fatto sulla stessa folder il file originale verrà cancellato e sustituito con quello nuovo

Con CopyFile verrà fatta una copia dello stesso file con il nome scelto anche se si trova nella stessa folder.


Codice:
<%
Dim fso, cartella, file
set fso = Server.CreateObject("scripting.FileSystemObject")
set cartella = fso.GetFolder("D:\sitosmi\ren\mdb\immagini\")
filePath = Server.MapPath("mdb/immagini/" )

for each file in cartella.files

%>

Codice:
<%
Dim f, File, Folder
Set f = CreateObject("Scripting.FileSystemObject")
Set Folder = f.GetFolder(Server.MapPath("cartella"))
For Each File in Folder.Files
response.write File.Name &"<br>"
Next
Set Folder = nothing
Set f = nothing
%>

L'struzione For Each...Next viene utilizzata per ripetere l'esecuzione di ciascun membro di un gruppo, in questo caso per scorrere tutti i membri della collection.
Files restituisce una collection di tutti gli oggetti file contenuti nella cartella. Inserisco la variabile File dopo il ciclo For Each, in Folder.Files legge i file contenuti nella cartella. Next deve essere inserito dopo la variabile che si occuperà di leggere il nome dei file Name.

response.write File.Name &"<br>"
Next

Set Folder = nothing
Set f = nothing

Libero le risorse

Questo ti serve per leggere tutti i file di una determinata cartella.

Per quanto scritto prima:

Codice:
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.MoveFile Server.MapPath("cartella/vecchio_file.jpg"), Server.MapPath("cartella/nuovo_file.jpg")
Set fso = Nothing
%>

Basta sostituire MoveFile con CopyFile, il metodo CopyFile accetta un'altro parametro overwrite, si tratta di un valore booleano True o False, di default se non dichiarato è True, il file viene sempre sovrascritto ad ogni richiesta, se dichiarato False non permette la sovrascrittura.

Per copiare in set di file si usa il carattere jolly

CopyFile "c:\cartella\*.html", "c:\cartella_nuova\"

Tutti i file con estenzione .html verrano copiati in cartella_nuova

Modifica questo, è quello che utilizzo per creare cartelle, cancellare e creare file, spostare file ecc...

Codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
PUBLIC FUNCTION muoviFile(fileName)
	Dim objFso
	Dim return
	on error resume next : err = 0
	IF fileName = "" OR fileName = Null THEN
		return = False
	ELSE
		Set objFso = Server.CreateObject("Scripting.FileSystemObject")
                objFso.CopyFile(Server.MapPath("cartella/"&fileName)), Server.MapPath("cartella_destinazione/"&Request.Form("filenuovoName"))&""
                IF (err = 0) THEN
			return = True
		ELSEIF (err <> 0) THEN
			return = False
		END IF
		Set objFso = Nothing
	END IF
	
	Response.Write("NUMERO ERRORE: "&err.number&"<br>DESCRIZIONE ERRORE: "&err.description&"<br><br>"&err.Source&"<br><br>")
	err = 0 : err.clear()
	muoviFile = return
END FUNCTION
Dim page
page = Request.QueryString("page")
IF page = "create" THEN

dim pippo
pippo=muoviFile(Request.Form("fileName"))

if pippo = False then
Response.Write("File non Copiato " & Request.Form("filenuovoName"))

elseif pippo = True then
Response.Write("File Copiato: " & Request.Form("fileName") & " con: "  & Request.Form("filenuovoName"))
end if

ELSE
%>
<HTML>
	<HEAD>
		<TITLE>Form Copia File</TITLE>
	</HEAD>
	
	<BODY>
	<form method="post" action="copiafile.asp?page=create">
		<input type="text" name="fileName"> <!-- file da copiare -->
		<input type="text" name="filenuovoName"> <!-- nuovo file -->
                <input type="submit" value="Copa File">
	</form>
	</BODY>
</HTML>

<%
END IF
%>

Ti restituisce errore se si è verificato un errore, il numero dell'errore e il source.

Se l'errore l'errore è <> da 0 True ti restituisce:

NUMERO ERRORE: 0
DESCRIZIONE ERRORE: (vuoto nessua descrizione, errore non generato).

File Copiato: pippo.jpg con: pluto.jpg (ES)

Per il false, non permettere la sovrascrittura di un file:

Codice:
objFso.CopyFile(Server.MapPath("cartella/"&fileName)), Server.MapPath("cartella_destinazione/"&Request.Form("filenuovoName"))&"",False

Vedi se puoi addattarlo per le tue esigenze.

Valeria.
 

magomer1

Nuovo Utente
19 Mag 2012
6
0
0
Ciao, mi dispiace non essermi spiegato bene e averti fatto perdere tempo.
Ci riprovo.

<%
Dim fso, cartella, file
set fso = Server.CreateObject("scripting.FileSystemObject")
set cartella = fso.GetFolder("D:\sitosmi\ren\mdb\immagini\")
filePath = Server.MapPath("mdb/immagini/" )

for each file in cartella.files

%>
<td><%=file.Name%></td>




<form method="GET" action="move.asp">

<table>
<tr>
<input type="text" name="percorso" value= <%=(filePath) & "\" & (file.name)%> size="60" ></td>

<input type="text" name="nuovopercorso" value= <%=(filePath) & "\casa\" %> size="60" ></td>

<td>Codice:</td><input type="text" name="codice" size="60" ></td>
<%
next
%>
</table>

</table>
<input type="submit" value="MODIFICA DATI!">
</form>


Ho un immagine nel percorso cartella.
Questo viene visualizzato solo per comodità in "percorso".
Sempre per comodità visualizza il nuovo percorso in "nuovopercorso"
In codice digito il nuovo nome e alla pressione del pulsante di apre la pagina ...




<%
' Declaring Variables -->
Dim percorso, codice, nuovopercorso
Dim fs
' Creo una istanza dell'offetto FileSystemObject
Set fs = Server.CreateObject("Scripting.FileSystemObject")


'Retriving variables ---
PERCORSO=request.querystring("percorso")
nuovoPERCORSO=request.querystring("nuovopercorso")
codice=request.querystring("codice")


' sposto il file pagina.html nella nuova cartella
fs.copyfile "" & (PERCORSO) & "", "" & (nuovoPERCORSO) & " " & (codice) & ""

Response.Write nuovopercorso


%><p>
<A href=default.asp><IMG src=img/hme.gif border=0></a>
<A href=IndexMAGAZZINO.asp><IMG src=img/idx.gif border=0></a>

<%

' Faccio pulizia
Set fs = Nothing
%>


che a prescindere dal copy o move, mi mette il file con il nuovo nome nel nuovopercorso.
Questo funziona se ho un solo file nel vecchio percorso.
Il problema è che non so come, se avessi 10 file, far leggere il primo, cambiare nome alla pressione del pulsante, leggre il secondo, cambiare nome con il pulsante, leggere il terzo e cosi via ...
Spero di essermi spiegato meglio e in ogni caso GRAZIE !!

Marco
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

stai leggendo i file nella directory set cartella = fso.GetFolder("D:\sitosmi\ren\mdb\immagini\")

ma nel form c'è il path per quella destinazione value= <%=(filePath) & value= <%=(cartella)%>

Un esempio veloce, scorrere tutti i file e visualizzarli in altrettanti form e campo txt

il primo legge la directory di origine e il nome del file, il secondo la destinazione e il terzo per inserire il nuovo nome del file da copiare.

Va solo sistemato, vedi.

Codice:
<%
Dim fso, cartella, file
set fso = Server.CreateObject("scripting.FileSystemObject")
set cartella = fso.GetFolder(Server.MapPath("tua_cartella"))
for each file in cartella.files
Set fso = Nothing
filePath = Server.MapPath("destinazione/immagini/")
%>

<form method="get" action="move.asp">
<table>
<tr>
<td><br>Nome File e percorso di Origine<input type="text" name="percorso" value="<%=cartella%>\<%=file.Name%>" size="60"></td>
<td><br>Percorso Destinazione<input type="text" name="nuovopercorso" value="<%=(filePath)%>\" size="60" ></td>
<td><br>Codice: <input type="text" name="codice" size="60" ></td>
</table>
<input type="submit" value="MODIFICA DATI!">
</form>
<%
next
%>
<%
' Declaring Variables -->
Dim percorso, nuovopercorso, codice
Dim fs
' Creo una istanza dell'offetto FileSystemObject
Set fs = Server.CreateObject("Scripting.FileSystemObject")

'Retriving variables ---
PERCORSO=request.querystring("percorso")
nuovoPERCORSO=request.querystring("nuovopercorso")
codice=request.querystring("codice")

if PERCORSO = "" or nuovoPERCORSO = "" or codice = "" then
response.write"<p><A href=default.asp><IMG src=img/hme.gif border=0></a><A href=IndexMAGAZZINO.asp><IMG src=img/idx.gif border=0></a>"
response.end
end if

fs.copyfile "" & (PERCORSO) & "", "" & (nuovoPERCORSO) & " " & (codice) & ""

if nuovopercorso = "" then
response.write"<p><A href=default.asp><IMG src=img/hme.gif border=0></a><A href=IndexMAGAZZINO.asp><IMG src=img/idx.gif border=0></a>"
end if

Response.Write "<font face=""Verdana"" size=""5""><b>"&nuovopercorso&"</b><br><br><br>"

%>
<p>
<A href=default.asp><IMG src=img/hme.gif border=0></a>
<A href=IndexMAGAZZINO.asp><IMG src=img/idx.gif border=0></a>

Valeria.
 

magomer1

Nuovo Utente
19 Mag 2012
6
0
0
Ciao,
in effetti hai "pulito" la confusione che avevo fatto io mettendo anche quie controlli che servono per i campi.
Quello che ancora mi manca è fare questa operazione per un file alla volta.
Anche con il tuo script se metto 10 file nella cartella di origine mi fa vedere 10 form con 10 pulsanti modifica dati.
Quello che mi servirebbe e vedere un form per il primo file, poi clicco su modifica dati, torno alla pagina iniziale e vedo il secondo file e così via.
Non ho proprio idea.
Che sia più facile utilizzare un DB access dove in un campo metto, per ogni silgolo record, i percorsi dei file e poi li prendo in considerazione uno ad uno ?
Quasi quasi adesso provo anche perchè così non riesco ad andare avanti ....
Grazie ancora.
Ciao
 

wuolfit_one

Utente Attivo
21 Mag 2020
33
0
6
Salve a tutti scusate se scrivo qui ma la mia domanda è inerente a questo post....
Allora io ho una pagina web asp, grazie alla quale i miei utenti caricano dei file che io provvedo ad archiviare, ora però per motivi di coerenza, ho deciso di fargli compilare un form, con alcuni dati, che voglio usare per rinominare il file che l'utente carica, quindi la mia domanda è usando il comando Move o Copy come posso passargli i dati del form appena compilato come nuovo_nome_file.txt? grazie mille in anticipo
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@wuolfit_one

Apri una discussione tua senza accodarti a discussioni vecchie di anni!!!


  1. Prima però leggi attentamente il regolamento del forum e quello di sezione!
  2. Usa glia appositi tag per postare codice!
 
Stato
Chiusa ad ulteriori risposte.
Discussioni simili
Autore Titolo Forum Risposte Data
romeocharly [PHP] Script per rinominare in automatico le immagini inviate da ftp PHP 0
helpdesk rinominare immagini PHP 38
C Rinominare file in base all'id dell'utente loggato PHP 0
W Rinominare un file in PHP PHP 7
W Rinominare Documenti Con Form Asp Classic ASP 9
syndr0m3 [PHP] Rinominare file sul server ogni tot minuti PHP 8
M [PHP] Nome file, upload e rinominare PHP 2
S Rinominare progetto da Visual Studio Express 2013 Visual Basic 0
M rinominare file in upload PHP 3
M Rinominare filename immagine prima di fare l'upload PHP 2
xone Rinominare immagine upload PHP 3
Monital Rinominare le chiavi del multiarray dopo il suo ordinamento PHP 0
L Rinominare link PHP 10
L catturare e rinominare jpg PHP 27
M Rinominare cartella con Cronjob PHP 8
fabriss76 Rinominare sito HTML e CSS 6
G Come rinominare pagina HTML mantenendo posizione? SEO e Posizionamento 0
M Rinominare file Classic ASP 3
L rinominare una pagina da htm ad asp Discussioni Varie 5
S [VB.NET]: Coordinate immagini dentro una PictureBox Visual Basic 0
G Perché il mio sito su Google news fa vedere le immagini degli articoli la mia foto profilo? WordPress 1
M Immagini non usate WordPress 0
elmonarca77 Utilizzo e licenze immagini Webdesign e Grafica 4
S Risoluzione Immagini e Connessione Joomla 0
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
A WordPress e immagini Hosting 0
Y RITAGLIO IMMAGINI Javascript 0
R Immagini html HTML e CSS 2
E Come gestire al meglio le immagini legno grande formato Photoshop 0
M Random Immagini + Testi PHP 13
L form immagini per il database PHP 0
Ricky80 Coordinazione immagini HTML e CSS 4
P Percorsi e immagini. PHP 0
N Indicizzazione immagini su Google Google Search Console 0
L Import Immagini piattaforma IONIC Sviluppo app per Android 0
L Import massivo di immagini in tabelle piattaforma IONIC Presentati al Forum 1
P Script upload immagini jQuery 0
E Salvare immagini PHP 0
S problema salvataggio immagini Photoshop 0
R Immagini scontornate: che formato? HTML e CSS 4
A Sovrapposizione Immagini Photoshop 0
Cosina Mostrare immagini da una cartella, ma solo un numero definito PHP 12
Tommy03 Gestire dimensioni immagini PHP 4
M Aiuto con inserimento immagini WordPress 6
L Scmporre una foto dotata di varie immagini in piu layer Photoshop 2
M Impossibile visionare la immagini dall'App. IP Cam e Videosorveglianza 8
A Array di immagini Sviluppo app per Android 10
L Come spostare cartella immagini/video PHP 1
A Cornici immagini per sito Web Wordpress WordPress 1
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7

Discussioni simili