簡體   English   中英

在PHP中保存文件時出現問題(“無法打開流:沒有此類文件或目錄”)

[英]Problems saving file in PHP (“failed to open stream: No such file or directory”)

我只是想保存一個包含表單的序列化值的文件。

簡單形式

    <h2>PHP Form Validation Example</h2>
    <form form method="post"> 
       First Name: <input type="text" name="fname" value="

      <?PHP 

      echo ($_POST['fname']) 

      ?>">

<br><br>
   <input type="submit" name="Save" value="Save Current Form"> 
   Save File Name As: <input type="text" name="saveFile">
   <br><br>
   <input type="submit" name="Load" value="Load Old Form">      
       Load File: <input type="text" name="loadFile">

    </form>

當我保存/加載文件時,我使用PHP代碼:

<?php

if (isset($_POST['Save'])) {

$PostArray = $_POST;
$s = base64_encode(serialize($PostArray)); 
$file = sprintf('/SavedForms/%s',$_POST['saveFile']);
file_put_contents($file, $s);

}

if (isset($_POST['Load'])) {

$file = sprintf("/SavedForms/%s",$_POST['loadFile']);
$_POST = unserialize(base64_decode(file_get_contents($file)));

}
?>

但這只是告訴我

(當我嘗試保存文件名“ aaa”時)

那:“ 警告: file_put_contents(/ SavedForms / aaa) [function.file-put-contents] :無法打開流:在其中沒有這樣的文件或目錄”

我已經在文件中創建目錄/SavedForms/ ,如下圖所示。

在此處輸入圖片說明

有人可以讓我知道我在這里做錯了嗎?!!?

從目錄中刪除前導斜杠:

$file = sprintf('SavedForms/%s',$_POST['saveFile']);

假設SavedForms正在執行的php腳本位於同一目錄中。

路徑是相對於腳本的。 通過在前面加一個斜杠,您是在從計算機的最根目錄聲明一個絕對路徑。 這意味着它當前正在根目錄中查找SavedForms ,當然,它找不到它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM