我想要做的是使用用户输入更改文件并将更新后的文件上载回用户。在服务器上更改文件后将文件上传到用户
现在我有一些Java脚本,从输入收集数据:
$('#collectButton').click(function() {
var inputs = $('#someDiv input').get();
因为我收集我需要将其发送给我的PHP代码数据,它是由阿贾克斯邮政和JSON(阵列转移)完成。
$.ajax({
type: "POST",
url: "Some.php",
data: {postedData:JSON.stringify(inputs)},
success: function()
{
alert('done!');
}
});
Firebug的控制台确认数据传输和来这里的问题:
对此我看到了改变的文件(TXT简单),这应该是上传回来,但事实并非如此。
PHP,我用的是:
if (isset ($_POST['postedData'])){
$changes = (json_decode($_POST['postedData']));
....
some changes done by for loop
....
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($nwFile));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($nwFile));
ob_clean();
flush();
readfile($nwFile);
// deletes file right after
fclose($nwFile);
unlink($nwFile);
如何去做正确的?
为什么PHP的“header”部分被忽略?
PS
独立的PHP文件工作格栅。
问题只出现在“调用PHP”
您是否确认$ nwFile实际上是在服务器上创建的?另外,你为什么在头文件之后立即调用ob_clean()? – Yaniro 2011-12-30 20:31:36
Yaniro - 是$ nwFile创建的 ob_clean() - 是一个问题吗?它正在清理输出缓冲区。我不需要缓冲区,文件中的所有数据。 – owner 2011-12-30 21:25:35
尝试在标题前使用ob_clean(),但是你真的需要它吗? – Yaniro 2011-12-30 21:36:05