Ingen som vet varför min kod inte fungerar?, eller hur jag kan få den att slumpa till ett tecken om filnamnet redan finns?
Frågan#1
Hej. Håller på och försöka få servern att byta namn på en uppladdat fil om filnamnet redan finns. Hittade en kodsnutt, men ska jag vara ärlig så förstår jag mej inte på den :) .
Här är min kod iaf:
if (isset($_FILES['uplfile'])) {
// Kontrollera att det angavs en fil
if(empty($_FILES['uplfile']['name']))
die('Ingen fil har valts');
// Kontrollera storleken
if($_FILES['uplfile']['size'] > $maxsize)
die('Filen du valde är för stor. Maxstorleken är '.(string)($maxsize/1024).' KB.');
// Kontrollera filtypen
$types = explode(',', $filetypes);
$file = explode('.', $_FILES['uplfile']['name']);
$extension = $file[sizeof($file)-1];
if(!in_array(strtolower($extension), $types))
die('<br><br><STRONG>Du har en felaktig filtyp. Endast .jpg,gif,png,doc,zip,ppt,txt,pdf är tillåtet!</STRONG>');
// Generera unikt filnamn
$bokstav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6');
$thefile = $_FILES['uplfile']['name'];
while (file_exists($upload_dir_mark.$thefile)) { $img = $bokstav[rand(0, count($bokstav)-1)].$thefile; }
if (isset($_POST['komment'])) {
if ($_POST['kategori'] && $line[user] != NEWSLETTER){
$query3 = "INSERT INTO UserFiles (filename, RefID, Kommentar, Date) VALUES ('$thefile','$RefID','$komment3', $date)";
mysql_query($query3) or die('Query failed query3: ' . mysql_error());
$selected_radio = $_POST['kategori'];
if($selected_radio == 'marketing'){
if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir_mark.$thefile)) {
echo"<br><strong><p class=\"warning\">Success!</strong><p>";
echo "<br>Filen <strong>$thefile</strong> har nu laddats upp till användaren <strong>$line[user]</strong> <br> med kommentaren: <strong>$komment3 </strong>";
}
$query5 = "UPDATE UserFiles SET Kategori='marketing' WHERE Filename = '$thefile' ";
mysql_query($query5) or die('Query failed query5: ' . mysql_error());
}
if($selected_radio == 'purchase'){
if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir_purc.$thefile)) {
echo"<br><strong><p class=\"warning\">Success!</strong><p>";
echo "<br>Filen <strong>$thefile</strong> har nu laddats upp till användaren <strong>$line[user]</strong> <br> med kommentaren: <strong>$komment3 </strong>";
}
$query5 = "UPDATE UserFiles SET Kategori='purchase' WHERE Filename = '$thefile' ";
mysql_query($query5) or die('Query failed query5: ' . mysql_error());
}
if($selected_radio == 'development'){
if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir_deve.$thefile)) {
echo"<br><strong><p class=\"warning\">Success!</strong><p>";
echo "<br>Filen <strong>$thefile</strong> har nu laddats upp till användaren <strong>$line[user]</strong> <br> med kommentaren: <strong>$komment3 </strong>";
}
$query6 = "UPDATE UserFiles SET Kategori='development' WHERE Filename = '$thefile' ";
mysql_query($query6) or die('Query failed query6: ' . mysql_error());
}
}
if ($_POST['submit'] && $line[user] == NEWSLETTER){
$query3 = "INSERT INTO UserFiles (filename, RefID, Kommentar, Date) VALUES ('$thefile','$RefID','$komment3', $date)";
mysql_query($query3) or die('Query failed query3: ' . mysql_error());
if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir_news.$thefile)) {
echo"<br><strong><p class=\"warning\">Success!</strong><p>";
echo "<br>Filen <strong>$thefile</strong> har nu laddats upp till <strong>alla</strong> <br> med kommentaren: <strong>$komment3 </strong>";
}
$query7 = "UPDATE UserFiles SET Kategori='newsletter' WHERE Filename = '$thefile' ";
mysql_query($query7) or die('Query failed query7: ' . mysql_error());
$query8 = "UPDATE UserFiles SET RefID='all' WHERE Filename = '$thefile' ";
mysql_query($query8) or die('Query failed query8: ' . mysql_error());
}
}
if (!$_POST['kategori'] && $line[user] != NEWSLETTER){
echo"<br><br><strong><p class=\"warning\">Du har inte valt någon kategori. Filen laddades INTE upp!</strong><p>";
}
}
Någon som orkar hjälpa mej med att anpassa in koden för unikt filnamn så att den funkar.. Det som händer just nu är att om en fil redan finns så skrivs den över.
Som ni kan se i koden finns också 4 olika kategorier man kan få på filerna, vilket hamnar i olika mappar på servern. Så som det ser ut just nu har jag bara testat och lekt lite, så den kollar bara i $upload_dir_mark. De andra mapparna heter $upload_dir_purc , $upload_dir_deve, $upload_dir_news.