problema permessi file

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Salve, ho un sito che tramite un form posso caricare dei file in una cartella in ftp ma i permessi pubblici e
di gruppo di questi file vengono impostati senza permessi di lettura (600), quindi ogni volta devo impostarli
manualmente (644).
Non c'è un modo per impostarli automaticamente? Grazie
 
Ciao Bruce5000, esiste in PHP la funzione chmod che cambia i permessi a file appena creati, perchè mi sembra che di default non hanno nessun permesso ne di scrittura e ne di lettura. La funzione va utilizzata in questo modo:
PHP:
$filename = "esempio.txt";
chmod($filename,0644);
Come tu gia sai 0644 imposta la lettura e scrittura per il proprietario, e solo lettura per gli altri

Ciao
 
Questo è il mio codice, mi potresti consigliare dove devo inserire la funzione chmod? Grazie
PHP:
<?php
include "config_db.php";

do {
  if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {
$titolo = stripslashes($_POST['titolo']);
$data_pubblicazione = $_POST['data_pubblicazione'];
$file = $_POST['uploadfile'];
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$date = $year.'-'.$month.'-'.$day;

  $query = "SELECT * FROM file_rassegna_stampa WHERE nome = '".$_FILES['uploadfile']['name']."'";
  $result = mysql_query ($query) or die (mysql_error());
    if(mysql_num_rows($result) > 0)
    {
   echo "<script type=\"text/javascript\">"; 
   echo "alert(\"Il file è già stato caricato!\")"; 
   echo "</script>";
	}else {
	
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file(stripslashes($_FILES['uploadfile']['tmp_name']), 'file/'.stripslashes($_FILES['uploadfile']['name']))) {
      $msg =  "<script type=\"text/javascript\"> 
               alert(\"Errore nel caricamento del file!\")
               </script>";
    }
	//controllo del tipo del file caricato
	if($_FILES['uploadfile']['type'] == "application/msword") {
	$tipo = "DOC";
	}
	if($_FILES['uploadfile']['type'] == "application/vnd.openxmlformats-officedocument.word") {
	$tipo = "DOCX";
	}
	if($_FILES['uploadfile']['type'] == "application/pdf") {
	$tipo = "PDF";
	}
	if($_FILES['uploadfile']['type'] == "text/plain") {
	$tipo = "TXT";
	}
	if($_FILES['uploadfile']['type'] == "application/vnd.open") {
	$tipo = "XLSX";
	}
	if($_FILES['uploadfile']['type'] == "application/vnd.ms-excel") {
	$tipo = "XLS";
	}
	
	//controllo della dimensione del file caricato
	if($_FILES['uploadfile']['size'] < 1024) {
		$dimensione = $_FILES['uploadfile']['size']." b";
	}
	if(($_FILES['uploadfile']['size'] >= 1024) && ($_FILES['uploadfile']['size'] < 1048576)) {
		$dimensione = round(($_FILES['uploadfile']['size'] / 1024), 0)." kb";
	}
	if($_FILES['uploadfile']['size'] >= 1048576) {
		$dimensione = round(($_FILES['uploadfile']['size'] / 1048576), 0)." mb";
  	}
	
//inserimento del file nel database
$sql = "INSERT INTO file_rassegna_stampa (nome, titolo, mime, urlfile, dimensione, dataora_pubblicazione, data_pubblicazione, tipo) VALUES ('".$_FILES['uploadfile']['name']."',
		'".$titolo."', '".$_FILES['uploadfile']['type']."', '', '".$dimensione."', '".$date."', '".$date."', '".$tipo."')";
$res = mysql_query ($sql) or die (mysql_error());

echo '<meta http-equiv="refresh" content="0;url=file_pubblicato_rassegna_stampa.php" />';

	}
  }
} while (false);
echo $msg;
?>
 
Inserendo questo else:
PHP:
// Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file(stripslashes($_FILES['uploadfile']['tmp_name']), 'file/'.stripslashes($_FILES['uploadfile']['name']))) {
      $msg =  "<script type=\"text/javascript\"> 
               alert(\"Errore nel caricamento del file!\")
               </script>";
    }  else {
//Da aggiungere
chmod('file/'.stripslashes($_FILES['uploadfile']['name']),0644);
}
:confused: Dovrebbe funzionare :)
 

Discussioni simili