Bild upload
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
eintrag
email
falsch mache
feld
file
ftp
funktion
http
idee
kleine update
log
ordner
profil
server
set
testen
url
vergeben
windows
-
Hallo Zusammen,
Ich richte gerade eine kleine Update Funktion für Profilbilder ein.
Jedoch wird das File nicht in den Ordner gespeichert. Habt ihr eine Idee was ich falsch mache?
if(isset($_POST['update_profilepicture'])){ function random_string($length){ $chars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $random_string = ''; $number_chars = strlen($chars); for($i=0;$i<$length;$i++) { $random_string .= $chars[mt_rand(0, $number_chars - 1)]; } return $random_string; } $filename_old = $_FILES['file']['name']; $filename_old = explode ('.',$filename_old); $filename_old = array_reverse ($filename_old); $file_type = $filename_old[0]; $filename_new = random_string(5) . "." . $file_type; $complete_filename = "/profileimages/" . $filename_new; move_uploaded_file($_FILES['file']['tmp_name'], '/profileimages/' . $filename_new); $check_profile_image = $db->query("SELECT profile_image FROM users WHERE email='$session_info'"); $check_profile_image_array = $check_profile_image->fetch_array(); if (file_exists($check_profile_image_array['profile_image'])){ unlink($check_profile_image_array['profile_image']); } $db->query("UPDATE users SET profile_image='$complete_filename' WHERE email='$session_info'"); $profile_picture_error = "<div class=\"alert_success\">Your profile picture was updated.</div>"; }
Der neue Name wird allerdings richtig in die Datenbank eingetragen.
Hier noch das Formular dazu:
<div class="row"> <section id="settings_container"> <h1>Profile picture:</h1> <div class="row"> <div class="6u wmfg_layout_1"> <ul class="wmfg_questions"> <form method="post" enctype="multipart/form-data" accept="image" action="/settings.php"> <li class="wmfg_q"> <input class="wmfg_btn" type="file" name="file" value="Browse..."> </li> <li class="wmfg_q"> <input type="submit" class="wmfg_btn" name="update_profilepicture" id="update_profilepicture" value="Update profile picture" /> </li> </form> </ul> </div> </div> </section> </div>
Kurz noch nebenbei irgendwie funktioniert die accept Funktion nicht, wie stelle ich es ein das nur png,jpg und jpeg erlaubt werden?
Liebe Grüße
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hey,
solch einen Fehler hatte ich vor kurzem auch. Gib deinen Profilbildordner per FTP Schreibrechte, dann sollte es gehen :)
PS: Schreibe dein move_uploaded_file($_FILES['file']['tmp_name'], '/profileimages/' . $filename_new); in eine If-Abfrage, um auch sicher zu gehen, dass dein Bild ordnungsgemäß hochgeladen und gespeichert wurde, bevor du einen DB-Eintrag schreibst ;)
MFG MIcha -
Huhu!
Wie gebe ich dem Ordner den Schreibrechte, bei Notepad++ geht das glaubich nicht :)
LG -
Lass mich raten, zum testen benutzt du XAMPP auf deinem Windows-PC? Oder wie testest du deine Scripts?
Hier mal ein Tutorial um Alle Rechte zu vergeben (bei Windows)
http://www.pa-s.de/php/tutorial-CHMOD-Rechte-in-Windows-vergeben-13.php -
Ich teste direkt auf lima :)
-
Gerade ausprobiert, funktioniert aber nicht :(
LG -
eine Idee habe ich noch ...
move_uploaded_file($_FILES['file']['tmp_name'], '/profileimages/' . $filename_new);
entferne das erste Slash-Zeichen ...
move_uploaded_file($_FILES['file']['tmp_name'], 'profileimages/' . $filename_new);
PS: Kontrolliere doch den Dateityp mit deiner $file_type-Variable
Beitrag zuletzt geändert: 6.9.2014 20:39:43 von michaelkoepke -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage