(Wiki::File-Upload)
bearbeitet von ursus contionabundo> Siehe hierzu die [umfangreichen Gedanken zum File-Upload](https://wiki.selfhtml.org/wiki/PHP/Tutorials/File_Upload).
Hm. Inzwischen zu groß (halbes Buch) geworden und unübersichtlich. [Habe gerade am wiki-Eintrag herumgedoktort](https://wiki.selfhtml.org/index.php?title=PHP%2FTutorials%2FFile_Upload&type=revision&diff=62367&oldid=60857).
Die Berechnung der maximalen Upload-Größe scheint nicht ganz trivial. Wie würdet Ihr das machen?
~~~php
<?php
class ini_max_filesize {
public $max_filesize = 0;
public $upload_max_filesize = 0;
public $post_max_size = 0;
public $symbols = 'KMGTPEZ';
public $arSymbols = false;
function __construct () {
$this-> arSymbols = array_merge( [''], str_split( $this-> symbols ) );
$this -> upload_max_filesize = $this -> extval2integer( ini_get('upload_max_filesize') );
$this -> post_max_size = $this -> extval2integer( ini_get('post_max_size') );
if ( $this -> upload_max_filesize < $this -> post_max_size ) {
$this -> max_filesize = $this -> upload_max_filesize;
} else {
$this -> max_filesize = $this -> post_max_size;
}
}
function extval2integer ( $val ) {
if ( 0 == (int)$val ) {
return PHP_INT_MAX;
} else {
$symbol = strtoupper( preg_replace( '/[^' . $this -> symbols . ']/', '', $val ));
return 1024 ** array_search( $symbol, $this -> arSymbols ) * (int)$val ;
}
}
}
?>
<input type="hidden" name="MAX_FILE_SIZE" value="<?= ( new ini_max_filesize() ) -> max_filesize; ?>">
~~~
Resultat mit
~~~
upload_max_filesize = 2M
post_max_size = 8M
~~~
in der php.ini:
~~~php
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
~~~
Hm. Inzwischen zu groß (halbes Buch) geworden und unübersichtlich. [Habe gerade am wiki-Eintrag herumgedoktort](https://wiki.selfhtml.org/index.php?title=PHP%2FTutorials%2FFile_Upload&type=revision&diff=62367&oldid=60857).
Die Berechnung der maximalen Upload-Größe scheint nicht ganz trivial. Wie würdet Ihr das machen?
~~~php
<?php
class ini_max_filesize {
public $max_filesize = 0;
public $upload_max_filesize = 0;
public $post_max_size = 0;
public $symbols = 'KMGTPEZ';
public $arSymbols = false;
function __construct () {
$this-> arSymbols = array_merge( [''], str_split( $this-> symbols ) );
$this -> upload_max_filesize = $this -> extval2integer( ini_get('upload_max_filesize') );
$this -> post_max_size = $this -> extval2integer( ini_get('post_max_size') );
if ( $this -> upload_max_filesize < $this -> post_max_size ) {
$this -> max_filesize = $this -> upload_max_filesize;
} else {
$this -> max_filesize = $this -> post_max_size;
}
}
function extval2integer ( $val ) {
if ( 0 == (int)$val ) {
return PHP_INT_MAX;
} else {
$symbol = strtoupper( preg_replace( '/[^' . $this -> symbols . ']/', '', $val ));
return 1024 ** array_search( $symbol, $this -> arSymbols ) * (int)$val ;
}
}
}
?>
<input type="hidden" name="MAX_FILE_SIZE" value="<?= ( new ini_max_filesize() ) -> max_filesize; ?>">
~~~
Resultat mit
~~~
upload_max_filesize = 2M
post_max_size = 8M
~~~
in der php.ini:
~~~php
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
~~~
(Wiki::File-Upload)
bearbeitet von ursus contionabundo> Siehe hierzu die [umfangreichen Gedanken zum File-Upload](https://wiki.selfhtml.org/wiki/PHP/Tutorials/File_Upload).
Hm. Inzwischen zu groß (halbes Buch) geworden) und unübersichtlich. Habe gerade am wiki-Eintrag herumgedoktort.
Die Berechnung der maximalen Upload-Größe scheint nicht ganz trivial. Wie würdet Ihr das machen?
~~~php
<?php
class ini_max_filesize {
public $max_filesize = 0;
public $upload_max_filesize = 0;
public $post_max_size = 0;
public $symbols = 'KMGTPEZ';
public $arSymbols = false;
function __construct () {
$this-> arSymbols = array_merge( [''], str_split( $this-> symbols ) );
$this -> upload_max_filesize = $this -> extval2integer( ini_get('upload_max_filesize') );
$this -> post_max_size = $this -> extval2integer( ini_get('post_max_size') );
if ( $this -> upload_max_filesize < $this -> post_max_size ) {
$this -> max_filesize = $this -> upload_max_filesize;
} else {
$this -> max_filesize = $this -> post_max_size;
}
}
function extval2integer ( $val ) {
if ( 0 == (int)$val ) {
return PHP_INT_MAX;
} else {
$symbol = strtoupper( preg_replace( '/[^' . $this -> symbols . ']/', '', $val ));
return 1024 ** array_search( $symbol, $this -> arSymbols ) * (int)$val ;
}
}
}
?>
<input type="hidden" name="MAX_FILE_SIZE" value="<?= ( new ini_max_filesize() ) -> max_filesize; ?>">
~~~
Resultat mit
~~~
upload_max_filesize = 2M
post_max_size = 8M
~~~
in der php.ini:
~~~php
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
~~~
Hm. Inzwischen zu groß (halbes Buch) geworden
Die Berechnung der maximalen Upload-Größe scheint nicht ganz trivial. Wie würdet Ihr das machen?
~~~php
<?php
class ini_max_filesize {
public $max_filesize = 0;
public $upload_max_filesize = 0;
public $post_max_size = 0;
public $symbols = 'KMGTPEZ';
public $arSymbols = false;
function __construct () {
$this-> arSymbols = array_merge( [''], str_split( $this-> symbols ) );
$this -> upload_max_filesize = $this -> extval2integer( ini_get('upload_max_filesize') );
$this -> post_max_size = $this -> extval2integer( ini_get('post_max_size') );
if ( $this -> upload_max_filesize < $this -> post_max_size ) {
$this -> max_filesize = $this -> upload_max_filesize;
} else {
$this -> max_filesize = $this -> post_max_size;
}
}
function extval2integer ( $val ) {
if ( 0 == (int)$val ) {
return PHP_INT_MAX;
} else {
$symbol = strtoupper( preg_replace( '/[^' . $this -> symbols . ']/', '', $val ));
return 1024 ** array_search( $symbol, $this -> arSymbols ) * (int)$val ;
}
}
}
?>
<input type="hidden" name="MAX_FILE_SIZE" value="<?= ( new ini_max_filesize() ) -> max_filesize; ?>">
~~~
Resultat mit
~~~
upload_max_filesize = 2M
post_max_size = 8M
~~~
in der php.ini:
~~~php
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
~~~
(Wiki::File-Upload)
bearbeitet von ursus contionabundo> Siehe hierzu die [umfangreichen Gedanken zum File-Upload](https://wiki.selfhtml.org/wiki/PHP/Tutorials/File_Upload).
Hm. Inzwischen zu groß (halbes Buch geworden) und unübersichtlich. Habe gerade am wiki-Eintrag herumgedoktort.
Die Berechnung der maximalen Upload-Größe scheint nicht ganz trivial. Wie würdet Ihr das machen?
~~~php
<?php
class ini_max_filesize {
public $max_filesize = 0;
public $upload_max_filesize = 0;
public $post_max_size = 0;
public $symbols = 'KMGTPEZ';
public $arSymbols = false;
function __construct () {
$this-> arSymbols = array_merge( [''], str_split( $this-> symbols ) );
$this -> upload_max_filesize = $this -> extval2integer( ini_get('upload_max_filesize') );
$this -> post_max_size = $this -> extval2integer( ini_get('post_max_size') );
if ( $this -> upload_max_filesize < $this -> post_max_size ) {
$this -> max_filesize = $this -> upload_max_filesize;
} else {
$this -> max_filesize = $this -> post_max_size;
}
}
function extval2integer ( $val ) {
if ( 0 == (int)$val ) {
return PHP_INT_MAX;
} else {
$symbol = strtoupper( preg_replace( '/[^' . $this -> symbols . ']/', '', $val ));
return 1024 ** array_search( $symbol, $this -> arSymbols ) * (int)$val ;
}
}
}
?>
<input type="hidden" name="MAX_FILE_SIZE" value="<?= ( new ini_max_filesize() ) -> max_filesize; ?>">
~~~
Resultat mit
~~~
upload_max_filesize = 2M
post_max_size = 8M
~~~
in der php.ini:
~~~php
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
~~~