2017-06-17 4 views
1

Ich benutze Heroku und ihr S3 Addon - "Bucketeer".Upload Limits auf Heroku/Bucketeer (S3)

Ich habe das funktioniert und ich kann Bilder kein Problem hochladen. Die Sache ist, dass es mir egal ist, Bilder hochzuladen. Meine App beschäftigt sich mit dem Hochladen von MP3s (nichts Unheimliches - es ist eine Web-App für lokale Bands).

Ich kann keine MP3s hochladen. Es ist kein Fehler oder irgendetwas, es ist nur, dass Dateien nicht in S3 enden - während Bilder genauso hochgeladen werden, tun.

Bearbeiten hinzufügen - Es ist kein Dateityp Problem, wie ich getestet, indem Sie eine sehr kleine mp3-Datei hochladen und das hat gut funktioniert.

-Code unten:

 <form class="form" action="../model/process-track-upload.php" method="post" enctype="multipart/form-data"> 
       <div class="row"> 
       <div class="col-xs-12 col-sm-4"> 
        <div class="dashboard-widget"> 
         <h3>Add a song to your collection</h3> 
         <input class="input" type="text" name="trackname" placeholder="Track Name" required/> 
         <input class="input-margin" name="userfile" type="file"> 
         <input type="hidden" name="userID" value="<?php echo $userID ?>" /> 
         <button class="btn btn-large btn-block " type="submit" name="btn-upload">upload</button> 
        </div> 
       </div> 
       </form> 

Und der Back-End-Code:

require('../vendor/autoload.php'); 

$s3 = Aws\S3\S3Client::factory(); 
$bucket = getenv('S3_BUCKET')?: die('No "S3_BUCKET" config var in found in env!'); 

if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['userfile']) && $_FILES['userfile']['error'] == UPLOAD_ERR_OK && is_uploaded_file($_FILES['userfile']['tmp_name'])) { 

    try { 

     $upload = $s3->upload($bucket, $_FILES['userfile']['name'], fopen($_FILES['userfile']['tmp_name'], 'rb'), 'public-read'); 
?> 
     <p>Upload <a href="<?=htmlspecialchars($upload->get('ObjectURL'))?>">successful</a> :)</p> 
<?php } catch(Exception $e) { ?> 
     <p>Upload error :(</p> 
<?php } } 

Antwort

0

Die Antwort auf diese Frage lag in Standard-PHP-Einstellungen.

JEDOCH, als ich Heroku benutzte, hatte ich keinen Zugriff auf die php.ini Datei.

Die Antwort war also, eine .users.ini-Datei zu erstellen, die wie eine vom Benutzer erstellte Überschreibung der php.ini ist.

In dieser Datei Ich habe nur die folgenden params:

upload_max_filesize = 15M 
post_max_size = 15M 
max_input_time = 0 
LimitRequestBody 0 

Danach gehe ich war gut zu!