php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2008, 18:35  
Neuer Benutzer
 
Registriert seit: 25.11.2008
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Chrasher befindet sich auf einem aufstrebenden Ast
Standard Kleines Problemchen vom Amateur

Also, ich hab vor nen Datei-Upload bei einer meiner Seiten einzurichten...
Also habe ich mir in meinem Leichtsinn ein Upload-Script gezogen und eingebettet...

Das Problem ist: Das Ding hat als "$accepted_file_types" nur sehr wenig Varianten und ich würde gerne ein paar hinzufügen. Allerdings hab ich keine Ahnung wie...

Kurze Erklärung wäre schön (Brauche die "Variablen" für exe, an8 und ähnliche^^)

Danke im Vorraus
Chrasher ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.11.2008, 18:38  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Aha
cycap ist offline  
Alt 25.11.2008, 18:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Crasher, ich sags nur ungern. Du bist mit Deinem ersten Beitrag hier im Forum schon voll gecrasht


Bitte beachten: Forenrichtlinien
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 25.11.2008, 18:43  
Neuer Benutzer
 
Registriert seit: 25.11.2008
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Chrasher befindet sich auf einem aufstrebenden Ast
Standard

Das nuzt mir viel^^. Also sry wenn ich dass hier ins falsche Unterforum gepostet habe oder sonst eine strenge Regel verletzt habe, ich brauche nur halt sehr dringend nen Rat, und kein "Aha".
Chrasher ist offline  
Alt 25.11.2008, 18:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Und Du meinst wir könnten jetzt Urigellerhaft Dein Script gedanklich downloaden und das entsprechende Variablensetting mental einfühlen, oder wie?

Zudem sind wir auch kein Support, also wenn, dann solltest Du zumindest schon mal einen Ansatz haben und konkrete Fragen stellen.

Und Dein dringend kannste gleich mal runterschlucken.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (25.11.2008 um 18:52 Uhr).
nikosch ist offline  
Alt 25.11.2008, 18:48  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Die Informationen reichen nicht aus, um Dir weiter zu helfen.
Es gibt nicht "DAS upload Skript" und schon allein deswegen sagt uns der Name der Variable $accepted_file_types wenig.
Und "hab da was gezogen, keinen blassen Schimmer, macht mal" funktioniert hier in aller Regel nicht.
David ist offline  
Alt 25.11.2008, 19:02  
Neuer Benutzer
 
Registriert seit: 25.11.2008
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Chrasher befindet sich auf einem aufstrebenden Ast
Standard

Danke David, jetzt weiss ich was gebraucht wird:
Script-Inhalt:
Zitat:
<?php
// Einstellungen:
// Verzeichnis, in das die Dateien hochgeladen werden;
// muss vorhanden sein und benötigt Schreiberechte (CHMOD 777):
$upload_dir = "uploaded";
// maximale Dateigröße in KB:
$max_file_size = 100000000;
// maximale Größe bei Bildern:
$max_image_width = 5000;
$max_image_height = 5000;
$accepted_file_types = array('image/jpeg','image/pjpeg','image/gif','image/png','text/plain','text/html','execute/exe');
// Datei-Endungen:
$accepted_file_extensiones = array('jpg','jpeg','gif','png','txt','html','htm', 'an8','scr','bmx','blend','cdr','doc','exe','php', 'zip','bak','','rar');

// Sprache:
$lang['title'] = 'Datei hochladen';
$lang['upload_subm_button'] = 'OK - Hochladen';
$lang['error_headline'] = 'Fehler:';
$lang['invalid_file_type'] = 'ungültiges Dateiformat ([file_type])';
$lang['invalid_file_extension'] = 'ungültige Datei-Erweiterung ([file_extension])';
$lang['file_too_large'] = 'Datei zu groß ([size] KB)';
$lang['image_too_large'] = 'Bild zu groß ([width] x [height])';
$lang['file_already_exists'] = 'die Datei <b>[file]</b> existiert bereits';
$lang['upload_successful'] = 'Die Datei [file] wurde erfolgreich hochgeladen!';
$lang['upload_not_successful'] = '<b>Fehler:</b> Die Datei [file] konnte nicht gespeichert werden!';
$lang['load_up_another_file'] = "eine weitere Datei hochladen...";

?><html>
<head>
<title><?php echo $lang['title']; ?></title>
<style type="text/css">
<!--
body { font-family: Verdana,Arial,Helvetica,sans-serif; color: #000000; font-size:13px; background-color: #CC6600; margin: 0px; padding: 20px; }
h1 { margin: 0px 0px 20px 0px; font-size:18px; font-weight:bold; }
.caution { color: red; font-weight: bold; }
.small { font-size: 11px; }
-->
</style>
</head>
<body>
<h1><?php echo $lang['title']; ?></h1>
<?php
if (isset($_FILES['probe']) && $_FILES['probe']['size'] != 0 && !$_FILES['probe']['error'])
{
unset($errors);
// file type ok?
if (!in_array($_FILES['probe']['type'], $accepted_file_types)) $errors[] = str_replace("[file_type]",$_FILES['probe']['type'],$lang['invalid_file_type']);
// extension ok?
$exts = explode(".", basename($_FILES['probe']['name']));
$file_extension = strtolower($exts[sizeof($exts)-1]);
if (!in_array($file_extension, $accepted_file_extensiones)) $errors[] = str_replace("[file_extension]",$file_extension,$lang['invalid_file_extension']);
// file size ok?
if ($_FILES['probe']['size'] > $max_file_size*1000) $errors[] = str_replace("[size]",number_format($_FILES['probe']['size']/1000,0,",",""),$lang['file_too_large']);
// if it's an image, image size ok?
if (in_array($_FILES['probe']['type'], $accepted_file_types) && in_array($_FILES['probe']['type'],array('image/jpeg','image/pjpeg','image/gif','image/png','image/bmp')))
{
$image_info = getimagesize($_FILES['probe']['tmp_name']);
if ($image_info[0] > $max_image_width || $image_info[1] > $max_image_width) { $lang['image_too_large'] = str_replace("[width]",$image_info[0],$lang['image_too_large']); $errors[] = str_replace("[height]",$image_info[1],$lang['image_too_large']); }
}
// filename already exists?
if (file_exists($upload_dir."/".basename($_FILES['probe']['name']))) $errors[] = str_replace('[file]',$_FILES['probe']['name'],$lang['file_already_exists']);

// if everything is ok load up the file:
if (empty($errors))
{
if (move_uploaded_file($_FILES['probe']['tmp_name'], $upload_dir.'/'.basename($_FILES['probe']['name'])))
{
chmod($upload_dir.'/'.$_FILES['probe']['name'], 0644);
?><p><?php echo str_replace('[file]', '<a href='.$upload_dir.'/'.$_FILES['probe']['name'].'>'.$_FILES['probe']['name'].'</a>',$lang['upload_successful']); ?></p>
<p class="small"><a href="<?php echo basename($_SERVER['PHP_SELF']); ?>"><?php echo $lang['load_up_another_file']; ?></a></p><?php
}
else
{
?><p><?php echo str_replace('[file]', $_FILES['probe']['name'],$lang['upload_not_successful']); ?></p><?php
}
}
// ...else show what's wrong:
else
{
?><p class="caution"><?php echo $lang['error_headline']; ?></p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
}
}

// show the upload form:
if (empty($_FILES['probe']) || $_FILES['probe']['size'] == 0 || isset($errors))
{
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="probe" /><br><br>
<input type="submit" name="submit-button" value="<?php echo $lang['upload_subm_button']; ?>">
</form>
<?php
}
?>
</body>
</html>
Die Endungen hab ich bereits in die gewünschten Formate geändert, aber bei den Filetypes ganz oben bin ich überfragt.
Chrasher ist offline  
Alt 25.11.2008, 19:03  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Na dann fangen wir doch mal mit der Funktionsweise von in_array an. siehe: PHP: in_array - Manual


(allerdings gleich vorweg: auch wenn Du es so zum Laufen bekommst, ist das nicht der richtige Weg. Sowohl der Dateiname als auch das, was in $_FILES[...]['type] steht wird vom Browser/Client gesendet. Ich kann also auch eine Javascript-Datei mit der Endung .jpg und dem "Typ" image/jpeg" senden)
David ist offline  
Alt 25.11.2008, 19:05  
Neuer Benutzer
 
Registriert seit: 25.11.2008
Beiträge: 4
PHP-Kenntnisse:
Anfänger
Chrasher befindet sich auf einem aufstrebenden Ast
Standard

Thx werd mich bilden
Chrasher ist offline  
Alt 26.11.2008, 09:38  
Neuer Benutzer
 
Benutzerbild von DeLoke
 
Registriert seit: 19.11.2008
Beiträge: 15
PHP-Kenntnisse:
Fortgeschritten
DeLoke befindet sich auf einem aufstrebenden Ast
DeLoke eine Nachricht über ICQ schicken
Standard

Webmaster Toolkit :: listing of mime types Google rockt

Geändert von DeLoke (26.11.2008 um 09:42 Uhr).
DeLoke ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
FPDF : Dokumentation oder kleines Beispiel gesucht SvenLittkowski PHP Tipps 2006 5 01.11.2006 02:26
Mein kleines Warenkorbsystem CityHubter PHP Tipps 2006 1 01.02.2006 10:37
kleines admin menue PHP Tipps 2007 25 29.12.2005 01:39
kleines Problem mit css layer Rotti HTML, Usability und Barrierefreiheit 0 08.12.2005 22:36
Sicher nur ein kleines Problem allerdings finde ich es nicht Datenbanken 8 30.10.2005 16:44
Kleines Onlinegame Beitragsarchiv 4 06.07.2005 22:11
Kleines Replace Problem bei tpl Vars PHP Tipps 2005 1 12.04.2005 13:52
[Erledigt] Kleines Validierungsproblem HTML, Usability und Barrierefreiheit 1 26.03.2005 19:20
Kleines Problem mit strip_tags PHP Tipps 2005 7 26.03.2005 00:27
Suche für mySQL alternatives Backend, kleines CMS ? PHP Tipps 2005 10 24.01.2005 12:11
kleines Problem mit >date< PHP Tipps 2004-2 4 11.12.2004 19:42
[Erledigt] Kleines Mozilla Problemchen Off-Topic Diskussionen 5 05.10.2004 13:59
[Erledigt] Formular, Submit, PHP - Hab ein kleines Problem PHP Tipps 2004 2 10.07.2004 13:50
kleines Forum?? Creativ PHP Tipps 2004 5 14.06.2004 20:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
amateur.php, type file $_files, max_file_size \dateigröße in\, in_array allowd $_files[\'type\'], accepted_file_types, ungültige dateierweiterungen, $accepted_file_types

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum