[英]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
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.