dunque lo riconosce correttamente. mi chiedo perché non debba accettarlo poi sull'invio.string(3) "stl" Rapporto di invio:
Il file non è del tipo corretto.
Spiacente, il tuo file non è stato caricato!
Verifica e correggi gli errori elencati e riprova.
$tipo=array('jpg','gif','png','stl','..ecc...'};
quindi vuol dire che legge l'estenzione (var_dump) ma che non la trova nell'arraystring(3) "stl" Rapporto di invio:
Il file non è del tipo corretto.
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "Rapporto di invio:<br><br>Il file è del tipo corretto -- TIPO -- " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "Rapporto di invio:<br><br><ERRORE:<br>Il file non è del tipo corretto.<br><br>";
$uploadOk = 0;
}
}
file1:
name: cubo.stl
type: application/sla
tmp_name: /tmp/phproQuTd
error: 0
size: 684
Filename: /tmp/phproQuTd
MIME type application/sla is deprecated
Fileinfo: application/octet-stream is failed
file: application/octet-stream is failed
Detected MIME: application/octet-stream is failed
MIME Crutch: application/octetstream is failed
<?php
if(isset($_POST['invia'])){
echo "<pre>";
var_dump($_FILES["fileToUpload"]["name"]);
var_dump($_FILES["fileToUpload"]["tmp_name"]);
$estenzione=strtolower(pathinfo($_FILES["fileToUpload"]["name"],PATHINFO_EXTENSION));
var_dump($estenzione);
$estenzion_tmp=strtolower(pathinfo($_FILES["fileToUpload"]["tmp_name"],PATHINFO_EXTENSION));
var_dump($estenzion_tmp);
echo "</pre>";
$tipo=array('jpg','jpeg','gif','png','dwg','dxf','igs','stl','3dm','3dmf'); ;
if(!in_array($estenzione,$tipo)){
echo "$estenzione file NON consentito<br>";
}else{
echo "$estenzione file consentito<br>";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input name="fileToUpload" type="file">
<input name="invia" type="submit">
</form>
string(7) "ch4.dwg"
string(27) "C:\Windows\Temp\php4B3E.tmp"
string(3) "dwg"
string(3) "tmp"
dwg file consentito
string(23) "gianni-002.jpg"
string(27) "C:\Windows\Temp\phpE23E.tmp"
string(3) "jpg"
string(3) "tmp"
jpg file consentito //analogo per gif e png
string(22) "ci_gianni_catelani.doc"
string(27) "C:\Windows\Temp\php3D1C.tmp"
string(3) "doc"
string(3) "tmp"
doc file NON consentito
string(8) "cubo.stl"
string(14) "/tmp/phpjmxIGk"
string(3) "stl"
string(0) ""
stl file consentito
string(11) "LOGO 3D.3dm"
string(14) "/tmp/phpABrUZ6"
string(3) "3dm"
string(0) ""
3dm file consentito
string(13) "alluminio.png"
string(14) "/tmp/phpCocvEM"
string(3) "png"
string(0) ""
png file consentito
Ora devo capire perché con l'altro script invece non si uplodano.string(23) "2016-11-03-11:30:00.mp3"
string(14) "/tmp/phpmpwM9M"
string(3) "mp3"
string(0) ""
mp3 file NON consentito
mi permetto di postarti uno script di esempio (in realtà una funzione) per l'upload di un file,Ho provato a cambiare l'estensione ad un file .php in .png per imbrogliarlo e ovviamente lo script dice che il file e consentito. Chiaramente li non c'è nessun controllo del MIME TYPE
<td><label for="Allegato">Allegato :</label></td>
<td><input type="file" name="Allegato" id="Allegato" /></td>
function GestisciAllegato() {
global $Allegato;
$Allegato = "";
if ($_FILES["Allegato"]["error"] == 4)
return true;
else {
if ($_FILES["Allegato"]["error"] > 0) {
print "<font color=red>Upload Return Code: ".$_FILES["Allegato"]["error"]."</font><br />";
return false;
} }
$Allegato_name = $_FILES["Allegato"]["name"];
$Allegato_type = $_FILES["Allegato"]["type"];
$Allegato_size = $_FILES["Allegato"]["size"] / 1024;
$Allegato_temp = $_FILES["Allegato"]["tmp_name"];
$Allegato_path = dirname($_FILES["Allegato"]["tmp_name"]);
$Allegato = $Allegato_path."/".$Allegato_name;
if ( ($Allegato_size == 0) // vale parametro di php.ini
|| ( ($Allegato_type <> "image/gif")
&& ($Allegato_type <> "image/jpeg")
&& ($Allegato_type <> "image/pjpeg")
&& ($Allegato_type <> "application/zip")
&& ($Allegato_type <> "application/x-zip-compressed")
&& ($Allegato_type <> "application/x-shockwave-flash")
) ) {
print "<font color=red>Dimensione o Tipo di file non valido</font><br />";
// return false;
}
print "<tr><td>Upload : </td><td>".$Allegato_name."</td></tr>";
print "<tr><td>Type : </td><td>".$Allegato_type."</td></tr>";
print "<tr><td>Size (kB) : </td><td>".$Allegato_size."</td></tr>";
print "<tr><td>Stored in : </td><td>".$Allegato_temp."</td></tr>";
print "<tr><td>folder : </td><td>".$Allegato_path."</td></tr>";
print "<tr><td>new file : </td><td>".$Allegato."</td></tr>";
if (file_exists($Allegato)) {
print "<font color=red>".$Allegato." esiste sul server<br />";
print "lo cancello per sostituirlo con il nuovo file trasferito</font><br />";
unlink($Allegato);
}
// move_uploaded_file($Allegato_temp, $UploadPath.$Allegato_name); <<-- non gestito
rename ($Allegato_temp, $Allegato);
if (file_exists($Allegato)) {
print "<font color=green>".$Allegato." Upload eseguito con successo</font><br />";
}
return true;
Togliendo quelli doppi, sarebbero 14 tipi da inserire..3dm x-world/x-3dmf
.3dmf x-world/x-3dmf
.stl application/sla
.stl application/vnd.ms-pki.stl
.stl application/x-navistyle
.iges application/iges
.iges model/iges
.igs application/iges
.igs model/iges
.dxf application/dxf
.dxf image/vnd.dwg
.dxf image/x-dwg
.dwg application/acad
.dwg image/vnd.dwg
.dwg image/x-dwg
.png image/png
.gif image/gif
.jpeg image/jpeg
.jpeg image/pjpeg
.jpg image/jpeg
.jpg image/pjpeg
<?php
$target_dir = "models/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($_FILES["fileToUpload"]["name"],PATHINFO_EXTENSION));//in modo che sia sempre tutto minuscolo
var_dump($imageFileType);
// Check if image file is a actual image or fake
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "Rapporto di invio:<br><br>Il file è del tipo corretto -- TIPO -- " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "Rapporto di invio:<br><br><ERRORE:<br>Il file non è del tipo corretto.<br><br>";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "<br><br>ERRORE:<br>Il nome scelto per il file esiste già. Rinomina il tuo file!<br>";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 5000000) {
echo "<br>Il tuo file ha una dimensione troppo grande. Carica un file che non superi i 5Mb<br>";
$uploadOk = 0;
}
$tipo=array('jpg','jpeg','gif','png','dwg','dxf','igs','stl','3dm','3dmf');//aggiungi e/o togli le estenzioni che ti interessano
//verifico che l'estensione sia tra i tipi ammessi
if(!in_array($imageFileType,$tipo)){//l'estensione non è nell'arrai
echo "<br>Solo i files di tipo JPG, JPEG, GIF, PNG, DWG, DXF, IGS, STL, 3DM, 3DMF, possono essere caricati.<br>";//se vuoi elencarli oppure
//echo "<br>non è ammesso caricare file tipo $imageFileType.<br>";
$uploadOk = 0;//file NON consentito
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "<br>Spiacente, il tuo file non è stato caricato!<br> Verifica e correggi gli errori elencati e riprova.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "<br><br><br>Il file -- ". basename( $_FILES["fileToUpload"]["name"]). " -- è stato caricato correttamente.";
} else {
echo "<br>Spiacente, si è verificato un'errore durante l'invio del tuo file.";
}
}
?>
JPG, JPEG, GIF, PNG, DWG, DXF, IGS, STL, 3DM, 3DMF,
x-world/x-3dmf
application/sla
application/vnd.ms-pki.stl
application/x-navistyle
application/iges
model/iges
application/dxf
application/acad
image/vnd.dwg
image/x-dwg
image/png
image/gif
image/jpeg
image/pjpeg
<?php
if(isset($_POST['submit']))
{
$uploadOk = GestisciUpload(); // $uploadOk = 1 : OK
// qui va gestito il comportamento successivo
}
else
{
// questa parte serve solo per provare lo script
DisplayForm();
}
function GestisciUpload()
{
$target_dir = "models/"; // terminato con la barra !
$allowed_type=array(
'x-world/x-3dmf',
'application/sla',
'application/vnd.ms-pki.stl',
'application/x-navistyle',
'application/iges',
'model/iges',
'application/dxf',
'application/acad',
'image/vnd.dwg',
'image/x-dwg',
'image/png',
'image/gif',
'image/jpeg',
'image/pjpeg'
);
if ($_FILES['fileToUpload']['error'] > 0)
{
echo "ERRORE : ".$_FILES['fileToUpload']['error']."<br /><br />";
return 0;
}
$file_name = strtolower($_FILES['fileToUpload']['name']); // nome originale del file
$file_type = strtolower($_FILES['fileToUpload']['type']); // tipo
$file_size = $_FILES['fileToUpload']['size'] / 1024; // dimensione in kB
$file_temp = strtolower($_FILES['fileToUpload']['tmp_name']); // path e nome assegnato dall'upload
$file_path = $target_dir;
$file = $file_path.$file_name;
// visualizzazioni da eliminare (commentare) in produzione
echo "Upload : " .$file_name ."<br />";
echo "Type : " .$file_type ."<br />";
echo "Size (kB) : " .$file_size ."<br />";
echo "Stored in : " .$file_temp ."<br />";
echo "target folder : " .$file_path ."<br />";
echo "target file : " .$file ."<br />";
// controllo se è accettabile
if ( !in_array($file_type, $allowed_type) )
{
echo "ERRORE : Il file non è del tipo corretto.<br /><br />";
return 0;
}
// controllo la dimensione
if ($file_size == 0)
{
echo "ERRORE : Il file è vuoto.<br /><br />";
return 0;
}
if ($file_size > 5000)
{
echo "ERRORE : Il file ha una dimensione troppo grande. Carica un file che non superi i 5 Mb.<br /><br />";
return 0;
}
// controllo se esiste lo stesso nome
if (file_exists($file))
{
echo "ERRORE : Il nome scelto per il file esiste già. Rinomina il tuo file!<br /><br />";
return 0;
}
// sposto il file nella destinazione (copia e cancellazione, move non funziona)
$err = copy($file_temp, $file);
unlink($file_temp);
if ( !$err ) {
echo "ERRORE : Lo spostamento del file nella destinazione non è riuscito<br /><br />";
return 0;
}
// controllo se il file é arrivato a destinazione
if (!file_exists($file))
{
echo "ERRORE : Il file non è arrivato a destinazione<br /><br />";
return 0;
}
// non ho altro da fare
echo "Il file -- ".$file_name." -- è stato caricato correttamente.";
return 1;
}
function DisplayForm()
{
?>
<!DOCTYPE html>
<form action="" method="post" enctype="multipart/form-data">
File da caricare : <input type="file" name="fileToUpload" id="fileToUpload" />
<br /> <br />
<input name="submit" type="submit" id="submit" value="Submit">
<br /> <br />
</form>
</html>
<?PHP
}
?>
function GestisciUpload($target_dir = "models/")
{
$allowed_type=array(
da cui
$cartella = "C:/Web_Sites/__Test/PHP/TEST/_xnotar/";
$uploadOk = GestisciUpload($cartella); // $uploadOk = 1 : OK
oppure, per usare il default
$uploadOk = GestisciUpload(); // $uploadOk = 1 : OK
// controllo se esiste la cartella di destinazione
if ( !is_dir($target_dir) )
{
echo "ERRORE : La cartella di destinazione non esiste<br /><br />";
return 0;
}
$file_name = strtolower($_FILES['fileToUpload']['name']); // nome originale del file
require_once 'function_upload.php';
$cartella = "C:/Web_Sites/__Test/PHP/TEST/_xnotar/";
$uploadOk = GestisciUpload($cartella); // $uploadOk = 1 : OK
praticamente non mi sposta il file nella directory di destinazione.Upload : cubo.stl
Type : application/sla
Size (kB) : 0.66796875
Stored in : /tmp/php01sfup
target folder : models/
target file : models/cubo.stl
ERRORE : Lo spostamento del file nella destinazione non è riuscito
Non lo riconosce.Upload : logo 3d.3dm
Type : application/octet-stream
Size (kB) : 1524.0625
Stored in : /tmp/phpdpypf6
target folder : models/
target file : models/logo 3d.3dm
ERRORE : Il file non è del tipo corretto.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?