繁体   English   中英

创建文件以供下载而无需使用PHP保存在服务器上

[英]Create file for download without saving on server with PHP

说我的PHP代码是

<?php

// Get form variables using POST method
$MarriagePostMortem=stripslashes($_POST['MarriagePostMortem']);
$AutoSavesToKeep=stripslashes($_POST['AutoSavesToKeep']);

// Open and write file
$myFile="S3S.cfg";
$fh = fopen($myFile, 'w+') or die("can't open file");
fwrite($fh, "The Sims 3 Starter Configuration
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
MarriagePostMortem  $MarriagePostMortem
AutoSavesToKeep $AutoSavesToKeep
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-");
fclose($fh); 

//echo "file written\n";
?>

我想将文件直接发送给用户下载而不保存到服务器。 我用PHP 真的不是很好,所以我需要添加/更改才能做到这一点?

header ("Content-Type: application/octet-stream");
header ("Content-disposition: attachment; filename=S3S.cfg");
echo $string; //the string that is the file

继承人你应该怎么做,你的html标签应该是小写并且保持清除表,除非你输出一个值表,使用带有css的div。 您也可以回发到脚本,因为从表单收到的变量是特定的,您只需检查正确的值,然后将数据发送回用户。

<?php
if($_SERVER['REQUEST_METHOD']=='POST'){

    $mpm = (!empty($_POST['mpm']) && ($_POST['mpm']=='true' || $_POST['mpm']=='false'))?$_POST['mpm']:die('Wrong parameter type');
    $astk = (!empty($_POST['astk']) && is_numeric($_POST['astk']))?$_POST['astk']:die('Wrong parameter type');


    $content  = "The Sims 3 Starter Configuration".PHP_EOL;
    $content .= "-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-".PHP_EOL;
    $content .= "MarriagePostMortem  $mpm".PHP_EOL;
    $content .= "AutoSavesToKeep $astk".PHP_EOL;
    $content .= "-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-".PHP_EOL;

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-disposition: attachment; filename=S3S.cfg');
    header('Content-Length: '.strlen($content));
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Expires: 0');
    header('Pragma: public');
    echo $content;
    exit;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sims 3 Starter Configuration</title>
</head>

<body>

<h1>Sims 3 Starter Configuration</h1>

<form action="" method="post">
<input type="reset" value="Clear changes">
<br />  
<p>marriagepostmortem
  <select name="mpm">
    <option value="true">enabled</option>
    <option value="false" selected="selected">disabled</option>
  </select>
  Keep marriage lines on family tree entries after death. experimental!</p>

<p>autosavestokeep
  <select name="astk">
    <option value="1">1</option>
    <option value="2" selected="selected">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
  </select>
  Number of autosaves to keep.</p>

<p><input type="submit" value="Generate"></p>
</form>
<p>Drag the file onto the sims 3 starter to add configurations.</p>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM