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
- Rejestracja:około 6 lat
- Ostatnio:około 6 lat
- Postów:52
Samochod mi nie dziala. Jak mam go naprawic

- Rejestracja:ponad 6 lat
- Ostatnio:około 6 lat
- Postów:4
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
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
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
- Rejestracja:ponad 13 lat
- Ostatnio:około 12 godzin
- Postów:433
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
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
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 :)

- Rejestracja:prawie 7 lat
- Ostatnio:ponad 3 lata
- Postów:3394
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 ;)


