Как перед сохранением выбрать, создать директорию?

Discussion in 'PHP' started by vitasmitt, 12 Sep 2015.

  1. vitasmitt

    vitasmitt New Member

    Joined:
    12 Sep 2015
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php
    if(get_magic_quotes_gpc())
        
    $_POST array_map('stripslashes'$_POST);
    if(
    $_POST['content']){
    $fh fopen("file.txt""w");
    fwrite($fh$_POST['content']);
    fclose($fh);
    }
    if(
    $_POST['content2']){
    $fh fopen("file2.txt""w");
    fwrite($fh$_POST['content2']);
    fclose($fh);
    }
    ?><form method=post>
    <textarea name=content cols="100" rows="10"><?php echo file_get_contents("file.txt"); ?></textarea>
    <textarea name=content2 cols="100" rows="10" id="content2"><?php echo file_get_contents("file2.txt"); ?></textarea>
    <input type=submit value="Сохранить">
    </form> 
    Как сохранить все в определенную директорию(если нет, то создать директорию)?
    То есть нужно данные сохранить в директорию, которую нужно создать перед сохранением
     
  2. hesher

    hesher Elder - Старейшина

    Joined:
    23 Aug 2005
    Messages:
    74
    Likes Received:
    108
    Reputations:
    4
    Если я правильно тебя понял, то:
    PHP:
    <?php
    header
    ('Content-Type:text/html; charset=utf8');
    if (
    get_magic_quotes_gpc()) $_POST array_map('stripslashes'$_POST);
    $dir $_POST['dir'] ? $_POST['dir'] : '';
    if (
    $_POST['content']) {
      
    $fh fopen(chkAndMakeDir($dir) . "file.txt""w");
      
    fwrite($fh$_POST['content']);
      
    fclose($fh);
    }
    if (
    $_POST['content2']) {
      
    $fh fopen(chkAndMakeDir($dir) . "file2.txt""w");
      
    fwrite($fh$_POST['content2']);
      
    fclose($fh);
    }

    function 
    chkAndMakeDir($dir) {  //check and mkdir if not exists
      
    if (strlen($dir)>&& !is_dir($dir)) mkdir($dir0777);
      return 
    $dir;
    }
    ?>
    <form method=post>
       Directory to save: <input name=dir type="text" size="40" value="logs/"><br \>
       <textarea name=content cols="100" rows="10"><?php echo file_get_contents($dir "file.txt"); ?></textarea>
       <textarea name=content2 cols="100" rows="10" id="content2"><?php echo file_get_contents($dir "file2.txt"); ?></textarea>
       <input type=submit value="Сохранить">
    </form>
    p.s. Права у созданной папки в функции(777) нужно заменить на необходимые тебе
    Но вообще лучше такие вопросы задавать тут: http://forum.antichat.ru/threads/424866/

    p.p.s. + Разумеется, нужно делать еще проверку на то, что пользователь вводит в переменной $dir, но это уже в зависимости от задачи...
     
    #2 hesher, 12 Sep 2015
    Last edited: 12 Sep 2015
    vlladisllav and altblitz like this.