Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateipfad mit PHP einlesen

Frage Entwicklung PHP

Mitglied: Dirmhirn

Dirmhirn (Level 2) - Jetzt verbinden

17.06.2008, aktualisiert 22.06.2008, 8989 Aufrufe, 8 Kommentare

Wie kann ich denn auch den Dateipfad einer Datei speichern, wenn ich sie per post mit PHP übertrage?

HI!

Ich würde gerne in eine DB lokale Dateipfade eintragen.

01.
<form action="test.php" method="post" enctype="multipart/form-data"
02.
     <input type="hidden" name="ID" value=$row->part_id> 
03.
     <input name="Datei" type="file" size="10"><br> 
04.
     <input type="submit" value="OK"
05.
</form>
kann ich dann mit

01.
$datei = $_FILES["Datei"]["name"] ;

leider nur den Dateinamen auslesen.

hätte aber gerne den ganzen Pfad. ob relativ oder absolut wäre einmal egal.

Gibt es hier eine Möglichkeit?

lg Dirm
Mitglied: vbMaxi
17.06.2008 um 20:22 Uhr
hey Dirmhirn,
des kommt drauf an wo dein php script die Files hin lädt. Schon hast du den Pfad ich erklär das mal kurz an nem Beispiel:
Das PHP Script zum Uploaden:
01.
<?php 
02.
 
03.
   // Prüfen des Array $_FILES 
04.
   if (isset($_FILES["datei"])) { 
05.
 
06.
   // Upload-Status 
07.
   if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) { 
08.
 
09.
   // Muster zur Überprüfung der im Dateinamen 
10.
   // enthaltenen Zeichen 
11.
   $regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i"; 
12.
 
13.
   // Dateiname und Dateigrösse 
14.
   if (preg_match($regExp,$_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 10000000) { 
15.
 
16.
   // Temporäre Datei in das Zielverzeichnis 
17.
   // des Servers verschieben. 
18.
   move_uploaded_file($_FILES["datei"]["tmp_name"],"images/".$_FILES["datei"]["name"]); 
19.
    
20.
   //ErfolgsMeldung ausgeben 
21.
   //echo "Dateiupload erfolgreich abgeschlossen"; 
22.
   header("Location: alle_grafiken.php"); 
23.
   }else { 
24.
      echo "Fehler: Im Dateinamen oder Dateigrössen Limit!"; 
25.
26.
   }else { 
27.
      echo "Fehler: Während der Übertragung aufgetreten!"; 
28.
29.
   }else { 
30.
      echo "Fehler: Dateiupload fehlgeschlagen!"; 
31.
32.
 
33.
?>
Wichtig ist folgende Zeile:
01.
move_uploaded_file($_FILES["datei"]["tmp_name"],"images/".$_FILES["datei"]["name"]);
Hier wird der relative/absolute Pfad angegeben. Binde ihn einfach in den SQL-Befehl ein und fertig.

mfg Maxi
Bitte warten ..
Mitglied: Dirmhirn
18.06.2008 um 08:43 Uhr
HI!

hm nein es geht nicht um einen Datei upload. Die daten liegen intern schon am Server. Gedacht ist es jetzt eine Teileliste zu erstellen und dort die ganzen bilder verlinken, ohne sie neu abzuspeichern.

Also ein Button auf den ich klicken kann, --> Datei auswählen --> Pfad+Dateiname in DB ablegen.


Haben jetzt aber nocheinmal besprochen und werden wahrscheinlich doch alle Datein neu abspeichern. Dadurch könnten wr unsere daten gleich zentralisieren - was auch nicht schadet

Das mit dem Pfad würde mich aber trotzdem noch interessieren.

lg Dirm
Bitte warten ..
Mitglied: vbMaxi
19.06.2008 um 16:03 Uhr
achso jetzt hab ich verstanden wo der hammer hängt^^ ok ich werd mal schaun, ob ich da was find

lg Maxi
Bitte warten ..
Mitglied: Arano
22.06.2008 um 02:29 Uhr
Hm... wen sie schon auf dem Serve sind, kannst du sie doch sicher auch auslesen !? ..klar, sonst wüsstest du ja nicht welche Bilder eingetragen werden können
01.
<?php 
02.
 $img_dir="/struktur/teile/images"
03.
 $images =dir($img_dir); 
04.
 $x      =0; 
05.
 while($img=$images->read()){ 
06.
  echo '<input id="i_'.$x++.'" type="checkbox" name="img_to_save_in_db[]" value="'.$img_dir.'/'.$img.'"
07.
        <label for="i_'.$x.'">'.$img.'</label>'
08.
09.
?>
Naja, oder du verpackst es eben in einem <select>:
01.
<?php 
02.
 echo '<select name="image_to_save_in_db">'
03.
 while(){ 
04.
  echo '<option value="'.$img_dir.'/'.$img.'">'.$img.'</option>'
05.
06.
 echo '</select>'
07.
?>
Schönen Gruß Arano
Bitte warten ..
Mitglied: Dirmhirn
22.06.2008 um 14:40 Uhr
Hallo

hmm, ist eine interessante Idee. Der <select>-Befehl gefällt mir. (Nein mit Formularen und HTML-habe ich leider noch nichts gemacht-..)
Diese Methode wäre dann praktisch um Bilder zu ändern.


Das Problem ist halt dass die Bilder derzeit weit verstreut in diversen Unterverzeichnissen liegen und zwischen durch auch Bilder von anderen Dingen. Da wären die Listen recht lang und man findet nichts.
(Oder verstehe ich den Code ganz falsch?!)

Was ich genau suche:
Eine Möglichkeit um diese Variable, per Browser (also wie diese "Datei speichern"-Dialoge) füllen kann. Also Button drücken --> Datei(oder auch nur Verzeichnis, mit der obigen Methode könnte ich ja dann alle Nilder auslesen) auswählen --> Pfad in Variable speichern.
01.
  
02.
$img_dir="/struktur/teile/images";
lg Dirm
Bitte warten ..
Mitglied: vbMaxi
22.06.2008 um 17:08 Uhr
Ho Dirm,
irgendwo muss doch der pfad schon angegeben sein, sonnst könnte der server die bilda ja nicht ausliefern oder???

lg Maxi
Bitte warten ..
Mitglied: Dirmhirn
22.06.2008 um 18:19 Uhr
na es geht ja nicht ums ausliefern. Also:

ein datei server:
daten
+-+Preojekt1
| +--Bilder
| +--CAD-Drwings
+-+Preojekt2
| +--Pictures
| +--CAD-Drwings
| +--Testing
+--+--Spezial_projekte
| +-+Preojekt3
| +--Bilder_neu
| +--CAD-Drwings
+--+www
+test.php

Daten und Webserver liegen auf einer Partition. Die Bilder sind bunt in Ordner verstreut (keine klare Struktur)

Ich will jetzt in dem Skript test.php, den Ordner "/Projekt2/Pictures/" auswählen können.
Mit einem Benutzerdialog, also dass der Benutzer einfach den Ordner grafisch auswählen und dann auf laden/speichern/... drücken kann.


Ob ich das Bild dann lade und im Webordner auch noch ablege ist ja egal.
(Ist so mal nur für ein Intranet gedacht, bevor ihr da erschreckt wegen Sicherheit)

lg Dirm
Bitte warten ..
Mitglied: Arano
22.06.2008 um 23:55 Uhr
Jo, alles in einer liste kann lang werden ! Aber das heißt ja nicht das man es auch nur so machen kann

Übersicht kannst du ja schaffen, indem du es in z.B. drei Schritten machst.

__1. Das Hauptselect__
Ein <select> das alle Projekte auflistet.
__1.1 Der erste Teil__
Auslesen der Ordner aus "daten", der Ordner "Spezial_projekte" wird __ausgelassen__
__1.2 Speizial_projekte__
Eine <optiongrp> die alle Spezialprojekte enthält.

Nun einen "weiter"-Button oder das "onchange" im <select>

__2. Die Unterordner des Projekts__
Ein weiteres <select> das die Unterordner des Projektes enthält. (hier kann man vielleicht ja die ganze Ordnerstruktur abbilden)

Und wieder einen "weiter"-Button oder das "onchange" im <select>

__3. Die Bilder des Projektes / gewählten Ordners__
Das dritte <select> mit allen Bilden des ausgewählten Projektes/Ordners.

Nun der "Speichern"-Button worauf der Hauptpfad des Projektes (select 1), die Unterordner (select 2) und der Name des Bildes (select 3) an den Server geschickt wird.
Der wird es nun in die DB eingetragen und evtl. an einen neuen Ort kopiert.

Die "onchange" habe ich deshalb erwähnt weil man mit ihnen die Inhalte des gewählten Projektes bzw. Unterordner schnell per AJAX in das nachfolgende <select> schreiben kann. (dann muss man nicht immer auf den "weiter"-Button klicken)


Es neu an den Server schicken kann doch nur funktionieren, wenn du direkt am Server sitzen würdest !
Schließlich kannst du mit dem <input file> ja nur Dateien des lokalen Systems auslesen, die dann (nur die Datei) an den Server geschickt wird.


Schönen Gruß Tobias
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...