<?php ?> <html> <head> <title>Upload File To MySQL Database</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- .box { font-family: Arial, Helvetica, sans-serif; font-size: 12px; border: 1px solid #000000; } --> </style> </head> <body> <? //print $_SESSION['user_db']; //print $_SESSION['ident']; { foreach($_FILES['userfile']['error'] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $fileName = $_FILES['userfile']['name'][$key]; $tmpName = $_FILES['userfile']['tmp_name'][$key]; $fileSize = $_FILES['userfile']['size'][$key]; $fileType = $_FILES['userfile']['type'][$key]; if ($fileName==NULL) {print "An error has ocured during sending<script language='javascript'>alert('Nie zaznaczono pliku do wysyłki'); history.back();</script>r"; brak;} else { //move_uploaded_file($tmpName,"upload/$fileName"); //$fileName="upload/$fileName"; foreach ($users_f as $values_name) { if ($user_loged==$_SESSION['user_db']) { } } { } $root_directory = "./upload/".$_SESSION['ident']."/"; $filePath = $root_directory . $fileName; //print $randName; $fullName=$randName.'.'.$ext; $filePath = $root_directory . $randName . '.' . $ext; $fullName=$randName.'.'.$ext; $filePath = $root_directory . $randName . '.' . $ext; } } } else { if ($make_contain) { $filePath = $root_directory . $fileName; //print $randName; $fullName=$randName.'.'.$ext; $filePath = $root_directory . $randName . '.' . $ext; $fullName=$randName.'.'.$ext; $filePath = $root_directory . $randName . '.' . $ext; } } } include_once 'library/config.php'; include_once 'library/opendb.php'; $query = "INSERT INTO upload (name, size, type, userval,login,id_klienci, hash ) ". "VALUES ('$fileName', '$fileSize', '$fileType','$uzytkownik','$_SESSION[user_db]','$_SESSION[ident]','$fullName')"; //include 'library/closedb.php'; echo "<br>File $fileName uploaded<br><script>alert('File was uploaded in database'); document.location.href='./download.php';</script>"; } } else { switch($_FILES['userfile']['error'][$key]) { case UPLOAD_ERR_FORM_SIZE: break; case UPLOAD_ERR_PARTIAL: break; case UPLOAD_ERR_NO_FILE: break; default: } } } } ?>
I tak jak napisałem powyżej, wszystko ładnie działa, z tym, że chciałem teraz dodać również rozróżenienie kategorii do każdego pliku. tzn. formularz powiększył by się o nowe pole lub listę rozwijaną. Teraz jak obsłużyć odbiór kategorii w kodzie powyżej, aby do każdego pliku dodać również odpowiednią kategorię. Jak w ogóle najlepiej obsłużyć to w samym formularzu, gdyż jak się domyślam nie może być pole o takiej samej nazwie category do kliku plików, gdyz skrypt to napewno zinterpretuje źle jeśli chodzi o to co prześle zmienna $_POST[].
function enum($table, $field) { $result = @mysql_query("show columns from {$table} like \"$field\""); $result = @mysql_fetch_assoc($result); if($result["Type"]) { preg_match("/(enum((.*?)))/", $result["Type"], $enumArray); $getEnumSet = explode("'", $enumArray["2"]); $getEnumSet = preg_replace("/,/", "", $getEnumSet); $enumFields = array(); foreach($getEnumSet as $enumFieldValue) { if($enumFieldValue) { $enumFields[] = $enumFieldValue; } } return $enumFields; } return "Unable to get enum FIELD {$field} from table {$table}"; } <input type="hidden" name="MAX_FILE_SIZE" value="20000000"> <span id='filearea'><input name="userfile[]" type="file" class="box" id="userfile"> Kategoria:<select name='category' id='category' style='display:inline;'> <? $category_items=enum("upload","category"); foreach ($category_items as $aKeym => $aValuem) { { } } include 'library/closedb.php'; ?> </select>