2017-08-13 23 views
0

所有,使用PHP腳本保存在本地主機的圖像文件 - 不會工作

我跟隨下面的鏈接讓PHP工作在我的MacBook Pro(OS 10.12.6)。我甚至會在我使用 http://localhost/~USERNAME/phpinfo.php時出現phpinfo。 〜USERNAME被替換爲我的真實用戶名。

但是,當我在WebStorm(2016.3.1)中創建一個新項目並使用下面的HTML和PHP代碼....我遇到了問題。我的目標是有一個上傳輸入按鈕,以便用戶可以將圖像上傳到我的本地主持人文件夾。但是,在WebStorm中運行我的index.html時,upload.php文件會下載到我的下載文件夾中。我在input元素中選擇的文件永遠不會將其放入暫存文件夾中。

僅供參考,我修改了我的本地php.ini以包含下面的條目。然後我重新啓動apache2(通過sudo apachectl restart)。

你們會碰巧知道我做錯了什麼嗎?謝謝你的幫助。

LINK設置PHP上MAC

https://ole.michelsen.dk/blog/setup-local-web-server-apache-php- OSX-yosemite.html

HTML 
<form action="upload.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form> 

PHP

<?php 

    $uploaddir = 'staging/'; 
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); 
    move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); 

?> 

    PHP.INI 

    file_uploads = on 
    post_max_size = 40M 
    upload_max_filesize = 40M 
    post_max_size = 40M 
    max_execution_time : 6000 
    max_input_time : 6000 
    memory_limit : 128M 
+0

你可能已經PHP的錯誤報告關閉。即使如此,如果你看着Apaches錯誤日誌(下次!),你可能會找到@RiggsFolly給你的答案:) –

+0

你有看到日誌的建議嗎?我查看了/ var/log/apache2並重命名了error_log和access_log。然而,我嘗試運行我的網站後沒有創建新的error_log文件。 –

+0

將這兩行添加到項目調用的第一個PHP文件(index.php等)中。它不必在每個文件中都存在,只需在執行其餘代碼之前調用一次即可:'ini_set('display_errors',1); error_reporting(E_ALL);'這隻會把錯誤放在你的屏幕上,這對你來說更加容易。 –

回答

0

在輸入必須在PHP中使用的名稱相匹配的屬性name腳本

<input type="file" name="fileToUpload" id="fileToUpload"> 
        ^^^^^^^^^^^^^^^^^^^ 

所以修改PHP腳本這樣

<?php 

    $uploaddir = 'staging/'; 
    $uploadfile = $uploaddir . basename($_FILES['fileToUpload']['name']); 
    //           ^^^^^^^^^^^^ 
    move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $uploadfile); 
    //       ^^^^^^^^^^^^ 

?> 
+0

RiggsFolly,我逐字複製了你的建議代碼。但是我的問題仍然存在。我會研究如何查看錯誤代碼....正如Lucas Krupinski所提到的那樣。 –