2017-06-17 23 views
0

我在本地開發了一個小型網絡應用程序,並且所有工作都正常。部分功能允許用戶上傳MP3文件。在本地這一切都正常工作,文件被移動到正確的目錄,並可以播放。在heroku中,一切似乎都起作用,除了文件不在那裏。在Heroku環境下文件上傳不起作用

我的代碼...

標記:

<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" type="file" name="pic" /> 
         <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> 

PHP:

if(isset($_POST['btn-upload'])) 
{ 
     $pic = rand(100,1000000)."-".$_FILES['pic']['name']; 
     $pic_loc = $_FILES['pic']['tmp_name']; 
     $folder="../tracks/uploads/"; 
     if(move_uploaded_file($pic_loc,$folder.$pic)) 
     { 
      ?><script>alert('successfully uploaded');</script><?php 
     } 
     else 
     { 
      ?><script>alert('error while uploading file');</script><?php 
} 
} 

我不是真棒與環境配置等,因此它可能是一些對那裏發生的。

我應該補充說明,我推送到Heroku時,本地添加的文件可用。這只是使用基於Heroku的版本的應用程序添加的文件,它們沒有保存在正確的(或任何)目錄中。

感謝

+0

如果添加'echo realpath($ folder);'那個目錄是否存在?您可能需要先創建它。試試'$ folder =「../ tracks/uploads /」; mkdir(realpath($ folder),0777,true);'看看是否解決了你的問題。 – sjdaws

回答

0

我放棄這一點,並切換到S3。謝謝。