PHP $_FILES - Simpel
Nedenfor er vist koden til et simpelt program til upload af filer (både billeder og tekster).
Programmet er baseret på at alle filer opbevares i samme mappe og at filnavne indsægges i en DB-tabel som 'update'. F.eks. tabel med stamdata. Skal der kunne håndteres mere end et billede på stamdataenhed vil det være nødvendigt med en separat tabel.
Koden til kontrol mod DB-tabel for gyldig filpræfix kan evt. undlades.
<?php
$fejlbeskeder = "";
$file_dest = "";
$dok_id = "";
if (isset ($_GET['dok_id'])) // start GET
{
$dok_id = $_GET['dok_id'];
if (isset ($_POST['submit'])) //start POST
{
$file = ($_FILES['file']);
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
$query = "SELECT * FROM filsuffix
ORDER BY filsuf_navn ASC";
$result = mysqli_query($db_link, $query) or die (mysqli_error ($db_link));
while ($row = mysqli_fetch_assoc ($result))
{
$filsuf[] = $row['filsuf_navn'];
}
if(in_array($file_ext, $filsuf))
{}
else
{
$fejlbeskeder .= "Fil med denne extension er ikke tilladt<br />";
}
if($file_error === 0){}
else
{
$fejlbeskeder .= "Fejl vi upload $file_error<br />";
}
if ($fejlbeskeder == "") // fejlbeskeder
{
$tid = date("YmdGis");
$dok_fil = $tid . "_" . $file_name;
$file_dest = 'dokumenter/' . $dok_fil;
if(move_uploaded_file($file_tmp, $file_dest))
{
$dok_fil_a = mysqli_real_escape_string($db_link, $dok_fil);
$query = "
UPDATE dokstam SET
dok_fil = '$dok_fil_a'
WHERE dok_id = $dok_id";
$result = mysqli_query ($db_link, $query) or die (mysqli_error ($db_link));
header ("Location: stammenu_select.php");
exit;
}
else
{
$fejlbeskeder .= "Filen er ikke uploaded.<br />";
} //move_upload
}
} // slut POST
if (isset ($fejlbeskeder) && $fejlbeskeder != "")
{
$fejlbeskeder .= "dokfil_update.php";
echo "<fieldset class='red'>";
echo "<legend>Fejltekster</legend>";
echo $fejlbeskeder;
echo "</fieldset>";
}
?>
<form method="post" enctype="multipart/form-data">
<fieldset class="form-group">
<label for="upload" class="col-sm-2">Upload fil</label>
<div class="col-sm-3">
<input type="file" class="form-control" id="upload" name="file">
</div>
</fieldset>
<fieldset class="form-group">
<div class="col-sm-push-2 col-sm-10">
<input type="submit" class="btn btn-success" name="submit" value="Upload dokument">
</div>
</fieldset>
</form>
<?php
}
else
{
echo "<p>Der problemer med URL-parameter i adresselinien</p>";
} // slut isset GET
?>
</div>
|
|