mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 07:00 Benutzername: Passwort: Auto-Login

Thema: Uploader->linkanzeige vom 03.06.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Uploader->linkanzeige
Seite: 1, 2  Weiter
Autor Nachricht
ChillerT
Threadersteller

Dabei seit: 02.06.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 03.06.2007 17:44
Titel

Uploader->linkanzeige

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich habe folgenden Uploadercode:
Code:
<html>
<head>
<title>Upload</title>
</head>
<body><?
if($action){
$path = "$ordner"; // Url zum Speicher Ordner
$filename = "";
$deindomain = "http://URL/";
$time=time();
if ($_FILES['userfile']['tmp_name']<> 'none')
   {   
         $file = $_FILES['userfile']['name'];
         $temp = $_FILES['userfile']['tmp_name'];
         $path_parts = pathinfo($file);
         $filename = "" . $time . "." . $path_parts["extension"];
           $dest = $path.$filename;
   
        move_uploaded_file($temp, $dest);
   
      echo "Die Datei ist auf dem Server! <br><br>";
      echo "Url der Datei: <a href=\"$deindomain$path$filename\" target=\"_blank\">".$deindomain.$path.$filename;
     echo "</a>";
   }
} else { ?>

<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="MAX_FILE_SIZE" value="400000">
<br>
<strong>Uploader</strong> <br>
<br>
<input name="userfile" type="file" size=40>
<br>
<br>
<input type="submit" name="action" value="Speichern">
</form><? } ?></body>
</html>


Bei diesem Code, wird nach dem uploaden, ein link zum downloaden der soeben hochgeladenen Datei angezeigt, ich möchte, das dieser link aber nur als text in einer Art textarea zum Markieren haben.....wie muss ich den code dann verändern?

Zusätztlich, ist es möglich das script so zu verändern, das man nur bestimmte Formate hochladen kann?

Währe nett wenn einer weiterweis! Danke!


Zuletzt bearbeitet von ChillerT am Mo 04.06.2007 16:03, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst So 03.06.2007 21:01
Titel

Antworten mit Zitat Zum Seitenanfang

was hast du denn bisher versucht? oder gehe ich in der annahme, das du jemanden suchst, der dir dein script umschreibt? dann schiebs bitte in die jobbörse.

hier wird geholfen um sich selbst zu helfen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst So 03.06.2007 21:56
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
<textarea>link</textarea>
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Mo 04.06.2007 02:45
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Zusätztlich, ist es möglich das script so zu verändern, das man nur bestimmte Formate hochladen kann?

Einfach eine Prüfung einbauen. Wo ist das Problem? Einfache if-Abfrage...

Aber in jedem Fall MUSST du prüfen!
Was passiert denn, wenn ein User dort eine PHP-Datei hochlädt?
Du erzeugst direkte Links auf diese Files!
Da lade ich ein Script hoch, klicke auf den Link und habe die volle Kontrolle über deinen Account...
Das geht ruckzuck und jemand lädt ein Script hoch, das alles Files auf deinem Server löscht.
In jedem Fall darfst du keine PHP-Scripte beim Upload zulassen.
Je nachdem, wie die Einstellungen für Perl-Scripte oder irgendwelche CGI-Programme auf deinem Server sind, mußt du noch weiteres verbieten.

Naja, aber wie du es angehen sollst:
Entweder setzt du eine if-Abfrage in deinen Code oder du nutzt einen switch/case-Block.
Die zweite Möglichkeit wird sicherlich übersichtlicher und erspart dir einiges an Schreibarbeit, wenn es sich um mehrere Dateitypen handelt, auf die du prüfen willst.
Alles, was du tun mußt ist, dir den richtigen MIME-Type zu deinen Dateien, die du zulassen willst, rauszusuchen.

Code:
if ( $_FILES['userfile']['type'] == "image/jpeg" || $_FILES['userfile']['type'] == "image/gif" )
{
   $check = @move_uploaded_file( $temp, $dest );
}
else
{
   // Dateityp nicht zugelassen. Fehlermeldung ausgeben.
}


Bei einigen Dateien, wie z.B. JPEG-Bildern, könnte es sein, daß verschiedene MIME-Types gemeldet werden.
Daher müßtest du dort auf image/jpeg, image/jpg und image/pjpeg testen.
Es wäre einfacher, switch/case einzusetzen als eine lange if-Abfrage.
Das könnte vielleicht so aussehen:
Code:
$errorMsg = '';
switch ( $_FILES['userfile']['type'] )
{
   case "image/jpeg":
   case "image/jpg":
   case "image/pjpeg":
   case "image/gif":
   break;

   case "image/png":
   case "image/x-png":
   break;

   case "image/gif":
   break;

   default:
      $errorMsg = "Fehler! Der Dateityp ist nicht zugelassen.";
   break;
}

if ( $errorMsg != '' )
{
   $check = @move_uploaded_file( $temp, $dest );
}
else
{
   // Dateityp nicht zugelassen. Fehlermeldung ausgeben.
}



Aber noch ein paar Kommentare zu deinem Code.
Code:
<html>
<head>
<title>Upload</title>
</head>

Da fehlt erst einmal die DTD-Angabe. Das ist nicht nur wichtig, um dem Browser mitzuteilen, welche (X)HTML-Version verwendet wird, sondern auch um den Browser mittels Doctype-Switch in den standardkonformen Modus zu schalten.
Dann würde ich im Head noch ein paar Metatags setzen. Zumindest das verwendete Charset würde ich angeben.

Code:
if($action)

Das ist mehr oder weniger nur Zufall, wenn das noch funktioniert...
Nur wenn dein Hoster in der php.ini die Einstellung register_globals auf "on" gestellt hat, gibt es diese Variable.
Seit einiger Zeit steht dieser Wert aber bereits defaultmäßig auf "off".
Aus Gründen der Rückwärstkompatibilität haben einige Hoster diese Einstellung so gemacht.
Das ist aber schlecht, weil man so keinen wirklich Überblick hat, wo verschiedene Variablen her kommen.
In nächster PHP-Version wird es das wohl überhaupt nicht mehr geben.
Du solltest die Zeile ändern:
Code:
if ( isset( $_POST['action'] ) )


Code:
$path = "$ordner"; // Url zum Speicher Ordner

Wo wird die Variable $ordner gesetzt?
Und was machen die Quotes da?
Funktioniert dein Script so? Sieht mir so aus, als müßtest du dort einen Pfad reinschreiben.

Code:
if ($_FILES['userfile']['tmp_name']<> 'none')

"none"? Wieso sollte der Name der temporären Datei denn "none" sein? Das wird er sicher niemals sein, in keinem Fall!
Die Abfrage könntest du also sparen.
Prüfe hier lieber, ob alles OK ist und rufe dann move_uploaded_file() auf.
Schau dir $_FILES['userfile']['error'] an!

Code:
move_uploaded_file($temp, $dest);

Und was passiert bei einem Fehler?
Warum versuchst du nicht, einen eventuell auftretenden Fehler abzufangen?
Prüfe den Rückgabewert von move_uploaded_file().

Code:
<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">

Hier wieder das Gleiche:
Auf den meisten Servern wird es kein $PHP_SELF geben.
Nutze $_SERVER['PHP_SELF'].

Code:
<input type="hidden" name="MAX_FILE_SIZE" value="400000">

Ich schätze mal, daß dieser Wert höher ist als der in der php.ini zugelassene.
Normalerweise sind dort (per Standardeinstellung) nur 2 MB erlaubt (wenn dein Hoster da nichts dran geändert hat).
Aber wie auch immer: Auf eine clientseitige Prüfung kannst du dich ohnehin nicht verlassen.
Du mußt serverseitig prüfen.
Entweder verlässt du dich auf die Einstellung, die dein Hoster per php.ini gemacht hat oder du prüfst selbst, indem du dir $_FILES['userfile']['size'] anschaust, wenn dir der voreingestellte Wert zu hoch ist.
  View user's profile Private Nachricht senden
ChillerT
Threadersteller

Dabei seit: 02.06.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 04.06.2007 16:39
Titel

Puuuhhh

Antworten mit Zitat Zum Seitenanfang

Ooookkeyyy...
erstma THX das du mir geschrieben hast.....bin aber noch PHP anfänger....wo soll ich das ganze jetzt einsetzten?
Kannst du mir das vielleicht in das schon vorhandene script in die richtigen stellen kopieren??? Währe echt nett, weil ich bin erst im 2. PHP-Kurs
.....
wenn ich das geschafft hab atme ich auf^^

THX fürs schreiben!
  View user's profile Private Nachricht senden
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 110
Geschlecht: Männlich
Verfasst Mo 04.06.2007 17:05
Titel

Antworten mit Zitat Zum Seitenanfang

* Ich geb auf... *

lies dir die Antwort nochmal durch - wirklich sehr nett von rob das so ausführlich zu erklären.
Wenn Dir jetzt jemand ein fertiges Script zum kopieren rein setzt, hilft dir das auf lange Sicht auch nciht.
Wenn du mit rob's ausführungen nicht weiter kommst, mangelt es wirklich an Grundlagen ...versuch vll. erstmal was umusetzen was für dich verständlich bleibt... oder erarbeite dir entsprechende Kentnisse - letztendlich kommst du da eh nicht drum herum... Kurs hin oder her.

Selber machen == Lernen.
  View user's profile Private Nachricht senden
ChillerT
Threadersteller

Dabei seit: 02.06.2007
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 04.06.2007 19:36
Titel

Ja schon...

Antworten mit Zitat Zum Seitenanfang

Ja, schon, aber ich brauche das script halt so schnell wie mögöich, und erst das zu lernen was ich nicht kann dauert zu lange...ich bin ja gerade am 2. Kursende dran...aber dauert halt etwas....wenn ich es könnte hätte ich euch ja nicht um hilfe gebenten!

Ich möchte ja umbedingt lernen, aber das geht halt nicht so schnell wie ich es möchte^^ und das script ist wirklich dringend......egal, wenn mir hier keiner helfen Kann/ Will.....

Trotzdem THX
  View user's profile Private Nachricht senden
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 110
Geschlecht: Männlich
Verfasst Mo 04.06.2007 19:47
Titel

Antworten mit Zitat Zum Seitenanfang

Hilfe hast du bekommen... sogar ausführlicher als ich es in Anbetracht der zwei (fast identischen) Threads erwartet hätte *zwinker*

Wenn Du aber jemanden suchst, der dir etwas fertig strickt, dann hast du das falsche Unterforum erwischt - dafür gibt es hier die Jobbörse... aber das wurde im anderen Thread ja schon angemerkt * Keine Ahnung... *
  View user's profile Private Nachricht senden
 
Ähnliche Themen CSS - Linkanzeige ändern
ftp uploader
ftp uploader
File Uploader für eigenes CMS
[PHP / ASP] Uploader - brauche Hilfe
Bildergallery+Text + Uploader
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.