Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzanie rozszerzenia ?
seba22
post 20.04.2009, 22:33:22
Post #1





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

Ostrzeżenie: (0%)
-----


Witam,

W jaki sposób sprawdzić rozszerzenie świeżo dodanego pliku ( jeszcze nie przeniesionego funkcją move )

Chciałem tak:

  1. <?php
  2. $ext_poziom2L = pathinfo($_FILES["Filedata"]["tmp_name"]);
  3. ?>

i potem
  1. <?php
  2. echo -> $ext_poziom2L['extension'].
  3. ?>


I zwraca mi puste miejsce, jest to logiczne bo tmp_name, nie posiada przecież fizycznie rozszerzenia.

Potrzebuję, to aby wywołać funkcję
  1. <?php
  2. //Sprawdzam rozszeżenie
  3.  
  4.    
  5.    $system=explode('.',$name);
  6.    $system[2]=strtolower($system[2]);
  7.    if (preg_match('/jpg|jpeg/',$system[2])){
  8.        $img=imagecreatefromjpeg($_FILES["Filedata"]["tmp_name"]);
  9.    }
  10.    if (preg_match('/png/',$system[2])){
  11.        $img=imagecreatefrompng($_FILES["Filedata"]["tmp_name"]);
  12.    }
  13.    if (preg_match('/gif/',$system[2])){
  14.        $img=imagecreatefromgif($_FILES["Filedata"]["tmp_name"]);
  15.    }
  16. //Sprawdzam rozszeżenie
  17. ?>


I ta opcja nie działa, ponieważ nie ma rozszerzenia winksmiley.jpg
Ma ktoś jakiś zmyślny pomysł ?

A może dało by radę, ( nie programuję w php natywnie, więc podam pseudokod delphi )

  1. <?php
  2. try ( $img=załadować jako jpg)
  3. except
  4. try ( $img= zaladowac jako png)
  5. except
  6. try ($img zaladowac jako gif)
  7. except
  8. FAILED
  9. ?>


Ten post edytował seba22 20.04.2009, 22:50:26


--------------------
Go to the top of the page
+Quote Post
sowiq
post 20.04.2009, 22:40:13
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Zobacz co zawiera $_FILES['Filedata']['type'] -> http://pl.php.net/manual/pl/features.file-...post-method.php

I jeszcze jedno. Plik ma rozszerzenie.

Ten post edytował sowiq 20.04.2009, 22:41:48
Go to the top of the page
+Quote Post
seba22
post 20.04.2009, 22:50:08
Post #3





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

Ostrzeżenie: (0%)
-----


Array --> application/octet-stream

Takie coś mi wypluło.

// Poprawiam rozszerzenie ( nie wiem jak to się stało, w treści 3x napisałem poprawnie... )


// Przepraszam, zapomniałem o tym...
  1. <?php
  2. $_FILES["Filedata"]['name']
  3. ?>


Ten post edytował seba22 20.04.2009, 22:54:07


--------------------
Go to the top of the page
+Quote Post
sowiq
post 20.04.2009, 22:58:02
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(seba22 @ 20.04.2009, 23:50:08 ) *
Array --> application/octet-stream
Jeśli wypluło Ci tablicę, to znaczy, że uploadujesz więcej niż jeden plik.

Porównaj typy MIME plików z tym: http://www.w3schools.com/media/media_mimeref.asp żeby wiedzieć z jakim rodzajem obrazka (albo innego pliku) masz do czynienia.
Go to the top of the page
+Quote Post
seba22
post 20.04.2009, 23:13:17
Post #5





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

Ostrzeżenie: (0%)
-----


Już rozwiązane.

<?php
$_FILES["Filedata"]['name']
?>

I zwraca mi nazwę, z komputera lokalnego.

Bez obaw, nie zaufam jej, jeżeli nie utworzy mi z niej obrazka, to uznam że jest on niepoprawny.


--------------------
Go to the top of the page
+Quote Post
guitarnet.pl
post 20.04.2009, 23:29:03
Post #6





Grupa: Zarejestrowani
Postów: 74
Pomógł: 4
Dołączył: 7.03.2008

Ostrzeżenie: (0%)
-----


getImageFormat zwraca typ pliku graficznego

  1. <?php
  2. $image = new Imagick($_FILES['image_file']['tmp_name']);
  3.  
  4. $allowedType     = array('jpg','jpeg','gif','png','bmp');
  5.  
  6. if( !in_array( strtolower ($image->getImageFormat() ), $allowedType) )
  7. {
  8. return 'Invalid file type. Please try again.';
  9. }
  10. ?>


Ten post edytował guitarnet.pl 20.04.2009, 23:30:08


--------------------
Skrypty php, ajax, javascript
Go to the top of the page
+Quote Post
erix
post 21.04.2009, 15:01:32
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A jak nie ma ImageMagick na serwerze w postaci PECL-a, to wtedy kaszana... GD do tego celu wystarczy - getimagesize" title="Zobacz w manualu PHP" target="_manual, choć przy BMP trzeba nieco pokombinować.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 07:09