Problema con il caricamento di un'immagine su aruba

Soulfearor

Utente Attivo
16 Set 2014
53
0
6
Torino
www.serenagraficatorino.it
Salve a tutti, ho un problema su un sito caricato sull'host aruba.
Ho un'input per l'immagine e tutti gli altri di tipo text .. quando clicco su carica mi appare questo errore:

Warning: move_uploaded_file(../angolo-usato/53-54-02_04-12-14.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in D:\Inetpub\webs\prova\cms\script-carica.php on line69

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\PHP\upload\php18DB.tmp' to '../angolo-usato/53-54-02_04-12-14.jpg' in D:\Inetpub\webs\prova\cms\script-carica.php on line 69
Lo script è:

PHP:
$destAngoloUsato = '../angolo-usato/';

	if($categoria == 3) {  
		if(($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png") && ($_FILES['file']['size'] < 1048576 )) { 
			$estensione = pathinfo($_FILES['file']['name']); 
			$nuovonome = date('s-i-h_d-m-y') ."." .$estensione['extension'];
			move_uploaded_file($_FILES['file']['tmp_name'],$destAngoloUsato .$nuovonome);
		}
		$query = "insert into angolo_usato values ('','".mysqli_real_escape_string($connessione,$_REQUEST['nome'])."','".mysqli_real_escape_string($connessione,$_REQUEST['collezione'])."','".mysqli_real_escape_string($connessione,$nuovonome)."','".mysqli_real_escape_string($connessione,$_REQUEST['descrizione'])."')";
		mysqli_query($connessione,$query) or die(mysqli_error());
	}
E' la riga in cui mi da l'errore è questa:

PHP:
move_uploaded_file($_FILES['file']['tmp_name'],$destAngoloUsato .$nuovonome);
Il problema che sul mio server locale (wamp per la precisione) non mi da nessun errore e il caricamento avviene con successo. Sapete perchè fa questo?

p.s. inoltre non mi riconosce il carattere speciale dell'euro, che tipo di caratteri devo impostare?

Grazie in anticipo :)
 

luigi777

Utente Attivo
14 Feb 2008
1.073
1
38
38
Massa, Italy
sei sicuro che stai usando wamp con apache e php5 e mysql?

dall'errore leggo questo path:
D:\Inetpub\webs\prova\cms\script-carica.php on line69

che mi sembra più tosto "server windows".


io di consiglio quando carichi un'immagine e per evitare i problemi dei simboli etc.. del file system..

ti asherarlo con sha1($immagine+date("h:i:s")).. cosi non crei problemi..

buona serata.
 

luigi777

Utente Attivo
14 Feb 2008
1.073
1
38
38
Massa, Italy
vedi mio script che uso su aruba host linux

PHP:
	$file = explode('.',$_FILES['upload_file']['name']);	
	$file_name = sha1($_FILES['upload_file']['name']).'.'.$file[count($file)-1];
	
	move_uploaded_file($_FILES['upload_file']['tmp_name'], "".$dir_photo_admin."".$dir."/tmp/".$_FILES['upload_file']['name']."");
	$resizer = new ImageResizer("".$dir_photo_admin."".$dir."/tmp/".$_FILES['upload_file']['name']."","".$dir_photo_admin."".$dir."/big/".strtolower($file_name)."");
	$resizer->resizeImage(800,600);
	$resizer = new ImageResizer("".$dir_photo_admin."".$dir."/tmp/".$_FILES['upload_file']['name']."","".$dir_photo_admin."".$dir."/thumb/".strtolower($file_name)."");
	$resizer->resizeImage(150,150);
	unlink("".$dir_photo_admin."".$dir."/tmp/".$_FILES['upload_file']['name']."");
lascia perdere la classe imageresizer che è una classe dove creo le immagini thumb e big.

vedi come faccio io.

saluti.
 

Soulfearor

Utente Attivo
16 Set 2014
53
0
6
Torino
www.serenagraficatorino.it
Ecco:

Server Configuration
Apache Version :
2.4.4
PHP Version :
5.4.12
MySQL Version :
5.6.12
Io li rinomino così anche per evitare problemi se l'utente carica 2 volte la stessa foto.
Potresti spiegarmi gentilmente il perchè mi appare quell'errore? Scusa ma non me ne intendo troppo di php.

Proverò comunque anche il tuo esempio :)
 

luigi777

Utente Attivo
14 Feb 2008
1.073
1
38
38
Massa, Italy
ok, ma scusa, ma i script etc. non vanno inseriti nella cartella htdocs ?

move_uploaded_file($_FILES['upload_file']['tmp_name'], "".$dir_photo_admin."".$dir."/tmp/".$_FILES['upload_file']['name']."");

$dir_photo_admin = "../public/photo/";
la variabile $dir la prendo dal database che sarebbe il nome della cartella.

la cartella tmp è una cartella dove metto le foto che dopo vengono spostate nelle cartelle big, thumb.

il form:
<input name="upload_file" type="file" />


ciao.
 

Soulfearor

Utente Attivo
16 Set 2014
53
0
6
Torino
www.serenagraficatorino.it
Scusami ma non sono molto pratico di php, configurazione server, apache ecc ... in che senso vanno in htdock?
Io su Aruba carico il sito all'interno della sua cartella con all'interno altre cartelle che dividono il mio sito, è sbagliato fare così?
Posso chiederti di spiegarmi meglio?
Grazie.
 

luigi777

Utente Attivo
14 Feb 2008
1.073
1
38
38
Massa, Italy
si perché in xampp io le metto nella cartella c:\xampp\htdocs\

in wamp non lo so ..

forse cambiano da pacchetti a pacchetti.

Su Aruba quel metodo è ok.

spiegazione:
PHP:
move_uploaded_file($_FILES['upload_file']['tmp_name'], "../public/photo/prove/tmp/".$_FILES['upload_file']['name']."");
ciao a domani.
 

Soulfearor

Utente Attivo
16 Set 2014
53
0
6
Torino
www.serenagraficatorino.it
In wamp i siti li inserisco nella cartella www.

Sto leggendo che il server su Aruba è meglio linux che windows e qualcosa riguardo alla cartella public ma che in windows anche se vengono inseriti li i file si possono generare altri errori. Qualcuno sa spiegarmi meglio questa cosa?

p.s. luigi777 grazie per il tempo che mi stai dedicando :)