Przesył plików

Przesył plików
MI
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • Postów:4
1

Cześć,
mam pewien problem z przesylaniem plików. A mianowicie dla plików powyżej 2MB skrypt się nie wykonuje, chociaż w PHP.INI mam ustawiony rozmiar na prawie 40MB. Problem występuje na hostingu nazwa.pl

DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:1788
2

Możliwe, że nazwa ma swój własny limit i tyle. Użyj ini_get, żeby sprawdzić faktyczny rozmiar podczas wykonywania skryptu.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
2

Cześć,

Mam jakiś skrypt o jakiejś zawartości, który w jakiś sposób wrzuca pliki na mój serwer, lecz niestety podczas próby wrzucenia większych plików występuje jakiś problem.

tl;dr wrzuć więcej informacji


SP
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • Postów:52
2

Samochod mi nie dziala. Jak mam go naprawic

edytowany 1x, ostatnio: szybka_parowka
axelbest
Zasilacz z czarnej listy. Zamykam temat :)
MI
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • Postów:4
1

A przepraszam, rzeczywiście zbyt słabo opisałem problem.
Problem jest taki że na lokalnym serwerze skrypt działał prawidłowo, ale po wrzuceniu na hosting działa tylko dla plików ~500kb, dla większych się nie wykonuje. Mimo tego, że dołączyłem plik php.ini ciągle nie mogę przesyłać większych plików.

php.ini dotyczące plików

Kopiuj
upload_max_filesize = 40M
post_max_size = 40M
error_log = /plik_logow.log
error_reporting =  E_ALL & ~E_NOTICE
log_errors = 1
display_errors = off

skrypt

Kopiuj
                                if (isset($_FILES['upload'])) {
                                
                                    $total = count($_FILES['upload']['name']);

                                    $ileplk = 0;

                                    for( $i=0 ; $i < $total ; $i++ ) {


                                        $allowed = array ('image/pjpeg', 'image/jpeg', 'image/JPG', 'image/X-PNG', 'image/PNG', 'image/png', 'image/x-png');
                                        
                                        
                                        $x = explode("/", $_FILES['upload']['type'][$i]);                        
                                        
                                        if (in_array($_FILES['upload']['type'][$i], $allowed)){
                                            
                                            if(!file_exists("uploads/".$_SESSION['user'])){
                                            
                                                mkdir("uploads/".$_SESSION['user'], 0700);    
                                                
                                            }
                                                
                                            $ph = "uploads/".$_SESSION['user']."/".date('m-y');
                                            
                                            if(!file_exists($ph)){
                                                
                                                mkdir($ph, 0700);
                                                
                                            }
                                            
                                        
                                            $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

                                            if ($tmpFilePath != ""){
                                                
                                            //$x = date("Y-m-d_h:i:sa").$_FILES['upload']['name'][$i];    
                                                
                                            $newFilePath = "./".$ph."/".md5(microtime()).'.'.$x[1];

                                                if(move_uploaded_file($tmpFilePath, $newFilePath)) {


                                                    $data = [
                                                        'id' => $_POST['aptek'],
                                                        'scr' => $newFilePath,
                                                    ];
                                                    $sql = "INSERT INTO dokum (id, dkm) VALUES (:id, :scr)";
                                                    $stmt= $pdo->prepare($sql);
                                                    $stmt->execute($data);
                                                        
                                                    $stmt = $pdo->prepare("UPDATE zlc SET plik = 1 WHERE idzl = :id");
                                                    $id = $_POST['aptek'];                                                    
                                                    $stmt->bindParam(":id", $id, PDO::PARAM_INT);
                                                    
                                                    $stmt->execute();
                                                    
                                                        
                                                    $ileplk++;

                                                }
                                                
                                            }
                                                
                                            $_SESSION['bldp2'] = 0;
                                            $_SESSION['bld2'] = "<p class='aler'>Przesłano: ".$ileplk." plików</p>"; 
                                            $_SESSION['ale2'] = "alert-success";     
                                       
                                        }
                                        else{
                                            $_SESSION['bldp2'] = 0; 
                                            $_SESSION['bld2'] = "<p class='aler'>Nie przesłano</p>";
                                            $_SESSION['ale2'] = "alert-danger";
                                        }

                                    }       
                                       
                                
                                }

na dodatek ini_get('post_max_size') pokazuje 64M

Edit:

Oczywiście panie z nazwy powiedziała mi że nie ma żadnych limitów

Edit:
$_FILLES['error'] zwraca 1, czyli za mały fille_max_input, ale według ini_get powinien być wystarczający

edytowany 3x, ostatnio: Miop
SP
Zadaj pytanie do nazwa.peel czy maja jakies restrykcje
L7
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 20 godzin
  • Postów:433
1
Miop napisał(a):

A przepraszam, rzeczywiście zbyt słabo opisałem problem.
Problem jest taki że na lokalnym serwerze skrypt działał prawidłowo, ale po wrzuceniu na hosting działa tylko dla plików ~500kb, dla większych się nie wykonuje. Mimo tego, że dołączyłem plik php.ini ciągle nie mogę przesyłać większych plików.

W jaki sposób go "dołączyłeś"???

Miop napisał(a):

php.ini dotyczące plików

Kopiuj
upload_max_filesize = 40M
post_max_size = 40M
error_log = /plik_logow.log
error_reporting =  E_ALL & ~E_NOTICE
log_errors = 1
display_errors = off
Miop napisał(a):

na dodatek ini_get('post_max_size') pokazuje 64M

Czyli go nie dołączyłeś. A druga sprawa to interesuje Cię upload_max_filesize

edytowany 2x, ostatnio: leonpro778
MI
Tak, bo na nazwa.pl konfiguracja nie jest w pliku php.ini tylko .user.ini, plik znajduje sie w głównym folderze z skryptem. Jest teraz poprawnie dołączony bo upload_max_filesize zmieniło rozmiar do 768M, ale dalej wyświetla się błąd o za małym upload_max_filesize mimo przesłania dużo mniejszego pliku niż limit
L7
A nie jest tak, że .user.ini dotyczy TYLKO katalogu w którym ten plik się znajduje? Nie obejmuje to podkatalogów. Może tu jest problem?
MI
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • Postów:4
2

Problem rozwiązany (pomogło ponowne napisanie skryptu od podstaw).
Temat do zamknięcia

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Poznań
  • Postów:8797
2

Mógłbyś w takim razie wrzucić ten działający skrypt. Być może przyda się komuś w przyszłości, kto będzie miał podobny problem.
Jeśli wiesz też, na czym polegał problem i z czego wynikał - taka informacja także będzie mile widziana :)


Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
2
Miop napisał(a):

Problem rozwiązany (pomogło ponowne napisanie skryptu od podstaw).
Temat do zamknięcia

To teraz miej wzgląd na resztę ludzkości i opisz rzeczywistą naturę problemu wraz ze sposobem jego rozwiązania.
Bo może ktoś za 10 lat wygugla ten wątek i przeklnie cię za egoizm ;)


cerrato
Nie kradnij moich postów :P
Freja Draco
Freja Draco
Otwieram wybrane wątki w zakładkach i potem do nich przechodzę. Jak pisałam swoją odpowiedź, to twoja się jeszcze u mnie nie wyświetlała. Utwór nie wykazuje również cech plagiatu, zaś tożsama i stojąca za obydwoma postami idea nie została zapewne opatentowana (europejskie prawodawstwo na to z resztą nie pozwala). Nie zamierzam jednak zaprzeczać twojemu pierwszeństwu (co nie umniejsza jednakże mojej własnej kreatywności) i mogę je nawet niniejszym publicznie podkreślić. Dlatego publicznie oświadczam: tak, to Cerrato wynalazł telefon ;)
cerrato
No i szkoda, że nie można dać "łapki" za komentarz ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.