Pagina 1 di 1

file omonimi vengono cancellati

Inviato: 04/06/2008, 21:16
da aramartis
se inserisco due prodotti che hanno l'immagine con lo stesso nome mi tiene solo l'ultima, cambiano la stessa al prodotto inserito per prima. COme posso risolvere?


Visto che non mi sono capito neanche io mi spiego meglio
Ho un prodotto moto con file che si chiama auto.jpg
ho un prodotto auto con file che si chiama auto.jpg
alla moto e all'auto ho la stessa immagine che va bene per auto, in quanto auto, ma non va bene per la moto.
Peggio di peggio... :lol:

Re: file omonimi vengono cancellati

Inviato: 04/06/2008, 22:02
da marcus
aramartis ha scritto:se inserisco due prodotti che hanno l'immagine con lo stesso nome mi tiene solo l'ultima, cambiano la stessa al prodotto inserito per prima. COme posso risolvere?


Visto che non mi sono capito neanche io mi spiego meglio
Ho un prodotto moto con file che si chiama auto.jpg
ho un prodotto auto con file che si chiama auto.jpg
alla moto e all'auto ho la stessa immagine che va bene per auto, in quanto auto, ma non va bene per la moto.
Peggio di peggio... :lol:
E' un vecchio bug di osCommerce di cui ho già avuto modo di parlare e che a quanto pare è rimasto.

Nel mio pacchetto ho inserito un sistema che assegna in automatico un nome unico ad ogni immagine che viene caricata.

Nella classe admin/includes/classes/upload.php

cerca:

Codice: Seleziona tutto

       
$this->set_file($file);

$this->set_filename($file['name']);

$this->set_tmp_filename($file['tmp_name']);
e sostituisci con:

Codice: Seleziona tutto

			
$prefisso_nome_immagine =md5(uniqid(rand()));

$nome_immagine = $prefisso_nome_immagine . '.' . strtolower(substr($file['name'], strrpos($file['name'], '.')+1));

$this->set_file($file);

$this->set_filename($nome_immagine);

$this->set_tmp_filename($file['tmp_name']);

In questo modo viene generato un nome unico per ogni immagine e non dovrebbero esserci più sovrapposizioni.

Saluti
Marcus

Inviato: 04/06/2008, 22:09
da hsg26
scusatemi, ma è anche logico... che se le immagini sono caricate nella stessa cartella, se hanno lo stesso nome, una viene sovrascritta. si può per esempio impostare oscommerce in modo che carichi i thumbnails in sotto cartelle dal nome uguale alle categorie. Così si può averle con lo stesso nome. On the fly auto thumbnailer lo prevede in opzione.

Inviato: 04/06/2008, 22:18
da marcus
hsg26 ha scritto:scusatemi, ma è anche logico... che se le immagini sono caricate nella stessa cartella, se hanno lo stesso nome, una viene sovrascritta.
Proprio per questo è un bug ...
hsg26 ha scritto: si può per esempio impostare oscommerce in modo che carichi i thumbnails in sotto cartelle dal nome uguale alle categorie. Così si può averle con lo stesso nome. On the fly auto thumbnailer lo prevede in opzione.
La suddivisione in cartelle può essere utile ma direi che questo non c'entra col problema posto.

Inoltre se due prodotti hanno files immagine con lo stesso nome e vanno nella stessa categoria il problema si ripropone.

Saluti
Marcus

Inviato: 04/06/2008, 23:55
da hsg26
io non lo reputo un bug, ma una mancanza del codice.

Cosa che tu con la tua aggiunta hai appunto cercato di ovviare. è normale che un file con lo stesso nome, su un server come sul pc di casa, va a sovrascrivere l'altro. Con la differenza che oscommerce non chiede nulla e sovrascrive e basta. Far rinominare i files come fai tu, evita indubbiamente tutti i problemi, anche se l'ideale dal punto di vista seo, sarebbe l'aggiunta di un numero alla fine del nome... es: auto.jpg e auto_1.jpg che mi sembra sia ciò che il tuo codice fa.