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

Bilder Upload, mit nummer als dateiname

Frage Entwicklung PHP

Mitglied: superbios

superbios (Level 1) - Jetzt verbinden

13.07.2010 um 23:42 Uhr, 2858 Aufrufe, 1 Kommentar

Moin

Also ich suche ein ganz normales bider upload script (muss jetzt net so toll wie z.b. imageshrink etc,)
Aber es muss
- Den link zum bild anzeigen
- Dem bild einen automatisch generierten datei namen geben.

Folgendes script habe ich:

01.
<html>  
02.
<head>  
03.
<title>Upload</title>  
04.
</head>  
05.
<body>  
06.
<?  
07.
if($action){  
08.
 
09.
   // --------------------------------  
10.
   // Diverse Variablen  
11.
   // --------------------------------  
12.
 
13.
$path = "images/typen/"; // Url zum Speicherordner der großen Bilder  
14.
$thumb_path = "images/typen/thumb/"; // Url zum Speicherordner der Vorschaubilder  
15.
$config_width = "320"; // Bildbreite max. bei großem Bild  
16.
$config_height = "240"; // Bildhöhe max. bei großem Bild  
17.
$config_thumb_width = "80"; // Bildbreite max. bei Vorschaubild  
18.
$config_thumb_height = "60"; // Bildhöhe max. bei Vorschaubild  
19.
$resizequality = "70"; // Bildkompressionsrate 0-100  
20.
$deindomain = "http://www...........de/";  // unsere Domain  
21.
 
22.
if ($HTTP_POST_FILES['userfile']['tmp_name']<> 'none')  
23.
   {  
24.
 
25.
   // --------------------------------  
26.
   // Get File Upload Info  
27.
   // --------------------------------  
28.
 
29.
         $filename = $HTTP_POST_FILES['pic_file']['name'];  
30.
         $filetype = $HTTP_POST_FILES['pic_file']['type'];  
31.
         $filetmp = $HTTP_POST_FILES['pic_file']['tmp_name'];  
32.
 
33.
   // --------------------------------  
34.
   // Check file type  
35.
   // --------------------------------  
36.
 
37.
   switch ($filetype)  
38.
   {  
39.
      case 'image/jpeg':  
40.
      case 'image/jpg':  
41.
      case 'image/pjpeg':  
42.
 
43.
         $pic_filetype = '.jpg';  
44.
         break;  
45.
 
46.
      case 'image/png':  
47.
      case 'image/x-png':  
48.
 
49.
         $pic_filetype = '.png';  
50.
         break;  
51.
 
52.
      case 'image/gif':  
53.
 
54.
         $pic_filetype = '.gif';  
55.
         break;  
56.
      default:  
57.
         die("Falsches Dateiformat. Nur JPEG, GIF oder PNG erlaubt!");  
58.
   }  
59.
 
60.
   // --------------------------------  
61.
   // Generate filename  
62.
   // --------------------------------  
63.
 
64.
   srand((double)microtime()*1000000);   // for older than version 4.2.0 of PHP  
65.
 
66.
   do  
67.
   {  
68.
      $pic_filename = md5(uniqid(rand())) . $pic_filetype;  
69.
   }  
70.
   while( file_exists($path . $pic_filename) );  
71.
 
72.
 
73.
   // --------------------------------  
74.
   // Move this file to upload directory  
75.
   // --------------------------------  
76.
 
77.
   $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';  
78.
 
79.
   if ( @$ini_val('open_basedir') != '' )  
80.
   {  
81.
      if ( @phpversion() < '4.0.3' )  
82.
      {  
83.
         die("open_basedir is set and your PHP version does not allow move_uploaded_file<br /><br />Please contact your server admin");  
84.
      }  
85.
 
86.
      $move_file = 'move_uploaded_file';  
87.
   }  
88.
   else  
89.
   {  
90.
      $move_file = 'copy';  
91.
   }  
92.
 
93.
   $move_file($filetmp, $path . $pic_filename);  
94.
 
95.
   @chmod($path . $pic_filename, 0777);  
96.
 
97.
 
98.
   // --------------------------------  
99.
   // Well, it's an image. Check its image size  
100.
   // --------------------------------  
101.
 
102.
   $pic_size = getimagesize($path . $pic_filename);  
103.
 
104.
   $pic_width = $pic_size[0];  
105.
   $pic_height = $pic_size[1];  
106.
 
107.
 
108.
   // --------------------------------  
109.
   // This image is okay, we can cache its thumbnail now  
110.
   // --------------------------------  
111.
 
112.
   if($pic_filetype != '.gif')  
113.
   {  
114.
      $gd_errored = FALSE;  
115.
 
116.
      switch ($pic_filetype)  
117.
      {  
118.
         case '.jpg':  
119.
            $read_function = 'imagecreatefromjpeg';  
120.
            break;  
121.
         case '.png':  
122.
            $read_function = 'imagecreatefrompng';  
123.
            break;  
124.
      }  
125.
 
126.
      $src = @$read_function($path  . $pic_filename);  
127.
 
128.
      if (!$src)  
129.
      {  
130.
         $gd_errored = TRUE;  
131.
         $pic_thumbnail = '';  
132.
      }  
133.
      else if( ($pic_width > $config_thumb_width) or ($pic_height > $config_thumb_height) )  
134.
      {  
135.
         // Resize it  
136.
         if ($pic_width > $pic_height)  
137.
         {  
138.
            $thumbnail_width = $config_thumb_width;  
139.
            $thumbnail_height = $config_thumb_width * ($pic_height/$pic_width);  
140.
         }  
141.
         else  
142.
         {  
143.
            $thumbnail_height = $config_thumb_height;  
144.
            $thumbnail_width = $config_thumb_height * ($pic_width/$pic_height);  
145.
         }  
146.
 
147.
         $thumbnail = @imagecreatetruecolor($thumbnail_width, $thumbnail_height);  
148.
 
149.
         $resize_function = 'imagecopyresampled';  
150.
 
151.
         @$resize_function($thumbnail, $src, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);  
152.
      }  
153.
      else  
154.
      {  
155.
         $thumbnail = $src;  
156.
      }  
157.
 
158.
      if (!$gd_errored)  
159.
      {  
160.
         $pic_thumbnail = $pic_filename;  
161.
 
162.
         // Write to disk  
163.
         switch ($pic_filetype)  
164.
         {  
165.
            case '.jpg':  
166.
               @imagejpeg($thumbnail, $thumb_path . $pic_thumbnail, $resizequality);  
167.
               break;  
168.
            case '.png':  
169.
               @imagepng($thumbnail, $thumb_path . $pic_thumbnail);  
170.
               break;  
171.
         }  
172.
 
173.
         @chmod($thumb_path . $pic_thumbnail, 0777);  
174.
 
175.
      } // End IF $gd_errored  
176.
 
177.
   } // End Thumbnail Cache  
178.
 
179.
 
180.
  // --------------------------------------  
181.
  // OK lets resize the original picture  
182.
  // --------------------------------------  
183.
 
184.
  if($pic_filetype != '.gif')  
185.
  {  
186.
    $gd_errored = FALSE;  
187.
 
188.
    switch ($pic_filetype)  
189.
    {  
190.
      case '.jpg':  
191.
        $read_function = 'imagecreatefromjpeg';  
192.
        break;  
193.
      case '.png':  
194.
        $read_function = 'imagecreatefrompng';  
195.
        break;  
196.
    }  
197.
 
198.
    $src = @$read_function($path  . $pic_filename);  
199.
 
200.
    if (!$src)  
201.
    {  
202.
      $gd_errored = TRUE;  
203.
      $pic_resize = '';  
204.
    }  
205.
    else if( ($pic_width > $config_width) or ($pic_height > $config_height) )  
206.
    {  
207.
      // Resize it  
208.
      if ( (($pic_width / $pic_height) > ($config_width / $config_height)) )  
209.
      {  
210.
        $resize_width = $config_width;  
211.
        $resize_height = $config_width * ($pic_height/$pic_width);  
212.
      }  
213.
      else  
214.
      {  
215.
        $resize_height = $config_height;  
216.
        $resize_width = $config_height * ($pic_width/$pic_height);  
217.
      }  
218.
 
219.
      $resize = @imagecreatetruecolor($resize_width, $resize_height);  
220.
 
221.
      $resize_function = 'imagecopyresampled';  
222.
 
223.
      @$resize_function($resize, $src, 0, 0, 0, 0, $resize_width, $resize_height, $pic_width, $pic_height);  
224.
    }  
225.
    else  
226.
    {  
227.
      $resize = $src;  
228.
    }  
229.
 
230.
    if (!$gd_errored)  
231.
    {  
232.
      $pic_resize = $pic_filename;  
233.
 
234.
      // Write to disk  
235.
      switch ($pic_filetype)  
236.
      {  
237.
        case '.jpg':  
238.
          @imagejpeg($resize, $path . $pic_resize, $resizequality);  
239.
          break;  
240.
        case '.png':  
241.
          @imagepng($resize, $path . $pic_resize);  
242.
          break;  
243.
      }  
244.
 
245.
      @chmod($path . $pic_resize, 0777);  
246.
 
247.
    } // End IF $gd_errored  
248.
 
249.
  } // End Picture Resize  
250.
 
251.
      echo "Datei ist auf dem Server! <br><br>";  
252.
      echo "Url des großen Bildes: <a href=\"$deindomain$path$pic_filename\" target=\"_blank\">".$deindomain.$path.$pic_filename;  
253.
     echo "</a> <br><img src=\"$deindomain$path$pic_filename\"><br><br>";  
254.
      echo "Url des Vorschaubildes: <a href=\"$deindomain$thumb_path$pic_filename\" target=\"_blank\">".$deindomain.$thumb_path.$pic_filename;  
255.
     echo "</a> <br><img src=\"$deindomain$thumb_path$pic_filename\">";  
256.
 
257.
   }  
258.
} else { ?>  
259.
 
260.
<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">  
261.
<input type="hidden" name="MAX_FILE_SIZE" value="4000000">  
262.
<br>  
263.
<strong>File Upload</strong> <br>  
264.
<br>  
265.
<input name="pic_file" type="file" size=40>  
266.
<br>  
267.
<br>  
268.
<input type="submit" name="action" value="Speichern">  
269.
</form>  
270.
<?  
271.
 }  
272.
   // -----------------------------------------  
273.
   // Das Script kann unter Verwendung  
274.
   // dieses Vermerks uneingeschränkt  
275.
   // genutzt / verändert werden.  
276.
   //  © www.marc-gutt.de  
277.
   // -----------------------------------------  
278.
?>  
279.
</body>  
280.
</html>
Das wäre genau soetwas.
Aber : es ist für das "alte" PHP.
Für das "neue" gibt es auch welche, aber die generieren net automatisch den datei namen, sondern lassen es unverändert


LG
Mitglied: Enclave
26.07.2010 um 18:12 Uhr
Namen generieren ist nicht schwer. Nur muss man schon wissen was man möchte:

- durchnummeriert (1.jpg, 2.jpg, etc.)
- hash (a3cca2b2aa1e3b5b3b5aad99a8529074.jpg, etc.)
- uvm.

Sollten es viele, viele Bilder werden ist auf jeden Fall dazu angeraten die Bilder zu verteilen (dafür nehme ich gerne Hashwerte auseinander).

Ohne nachgesehen zu haben wird es aber bestimmt auch massig vernünftige Image-Hosting-Skripte geben die weitaus mehr können als du haben möchtest...


Mfg

Enclave
Bitte warten ..
Ähnliche Inhalte
Administrator.de Feedback
Diskussionsrunde: Bilder-Upload innerhalb eines Kommentars
gelöst Frage von FrankAdministrator.de Feedback26 Kommentare

Hallo Administrator User, auch hier brauche ich etwas Feedback von Euch. Ich will in der kommenden Woche den Bilder-Upload ...

PHP
Bilder upload, automatisch resizen und URL in PHPBB einfügen
Frage von HenerePHP

Hallo zusammen, ich betreibe ja ein Motorradforum welches in Kürze auf PHPBB umziehen soll. Wir hatten bis jetzt unter ...

Batch & Shell
Batch: Bilder (gewisse Nummern) vom Verzeichnis A in einen Ordner Kopieren
gelöst Frage von sagula91Batch & Shell3 Kommentare

Ich bin noch neuling im batchen und brauche eure Hilfe: Ich muss gewisse Bilder aus einem riesiegen Verzeichnis batchen. ...

Entwicklung
Google Bildersuche mit Bild-Upload per Skript benutzen und URLs auslesen
gelöst Frage von Jens4everEntwicklung3 Kommentare

Moin zusammen, folgende Situation: Wie könnte man Bilder in einem Ordner nach und nach automatisiert per Sktipt zu Google ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 8 StundenWindows 102 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 10 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner3 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...