Top-Themen

Aktuelle Themen (A bis Z)

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, 9433 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 ..
Ähnliche Inhalte
Batch & Shell
Dateipfad abgreifen
Frage von Julian2222Batch & Shell4 Kommentare

Hallo, wenn man ja eine Datei öffnet, wird ja der Pfad der Datei dem Standardprogramm welches in Windows hinterlegt ...

VB for Applications
Dateipfad extrahieren
gelöst Frage von Anna2701VB for Applications4 Kommentare

Ich habe folgendes : Filepath = TxtHyperlinkDokument.Hyperlink.Address Nun möchte ich mit Hilfe von Filepath, Filepath_Neu erzeugen, indem nur der ...

Batch & Shell
Dateipfad ausgeben
gelöst Frage von tegwertBatch & Shell2 Kommentare

Hallo zusammen! Ich nutze folgende Zeile zur Ermittlung der Dateipfade einer bestimmten mehrfach vorkommenden Datei: for %%a in (F ...

Mac OS X
Auf Windows Dateipfade zugreifen von OSX
Frage von nd5000Mac OS X8 Kommentare

Hallo zusammen, Kollegen die Windows nutzen schicken immer wieder Mails mit Links zu Datein auf einem Netzlaufwerk. Zum Beispiel: ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 3 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 4 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1010 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell21 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen17 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...