显示用ajax上传的txt文件的内容
Posted
技术标签:
【中文标题】显示用ajax上传的txt文件的内容【英文标题】:display contents of txt file uploaded with ajax 【发布时间】:2013-10-23 14:07:26 【问题描述】:我已经能够使用 ajax 将 .txt 文件上传到我的网站,但我还想在我的网站上显示 .txt 文件的内容。我不知道该怎么做。谢谢!
这是我的html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="static/jquery-1.4.2.js"></script>
<script type="text/javascript" src="static/jquery-ui-1.8.4.custom.min.js"></script>
<script type='text/javascript' src='static/js_test.js'></script>
<script type='text/javascript' src='static/jquery.form.js'></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
</head>
<body>
<form action="http://malsup.com/jquery/form/file-echo2.php" method="post" enctype="multipart/form-data">
<input type="file" name="myfile"/>
<input type="submit" value="Submit File"/>
</form>
<div class="progress">
<div class="percent">0%</div >
</div>
<div id="status"></div>
</body>
</html>
这是我的 jquery
$(document).ready(function()
(function()
var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');
$('form').ajaxForm(
beforeSend: function()
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
,
uploadProgress: function(event, position, total, percentComplete)
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
,
success: function()
var percentVal = '100%';
bar.width(percentVal)
percent.html(percentVal);
,
complete: function(xhr)
status.html(xhr.responseText);
);
)();
);
这是我的 php
<?php
foreach($_FILES as $file)
$n = $file['name'];
$s = $file['size'];
if (is_array($n))
$c = count($n);
for ($i=0; $i < $c; $i++)
echo "<br>uploaded: " . $n[$i] . " (" . $s[$i] . " bytes)";
else
echo "<br>uploaded: $n ($s bytes)";
?>
【问题讨论】:
好吧,我认为最好的办法是使用服务器端代码,尽管客户端代码可以使用更新的浏览器来完成 您将上传的文件放在哪里?如果它在您的文档根目录中,那么您可以使用指向该文件的普通 URL 来显示它。如果没有,那么您必须编写一个脚本来检索文件并显示它。 【参考方案1】:您可以在 ajax 请求中将其发送回:
在文件-echo2.php:
<?php
foreach($_FILES as $file)
$n = $file['name'];
$s = $file['size'];
if (is_array($n))
$c = count($n);
for ($i=0; $i < $c; $i++)
if (move_uploaded_file($n[$i], '/path/where/you/put/that/file.txt'))
echo "uploaded " . $n[$i] . " (" . $s[$i] . " bytes):\n";
echo file_get_contents('/path/where/you/put/that/file.txt');
else
if (move_uploaded_file($n, '/path/where/you/put/that/file.txt'))
echo "uploaded " . $n . " (" . $s . " bytes):\n";
echo file_get_contents('/path/where/you/put/that/file.txt');
【讨论】:
谢谢!我不知道文件的路径是什么,所以代替我使用的路径 $file["tmp_name"]【参考方案2】:var fileText = load('file_name.txt');
您可以在此处找到更多解决方案: http://forum.jquery.com/topic/reading-values-from-text-file
【讨论】:
load()
?这是在哪里定义的?它有什么作用?即使在链接的论坛帖子中,除了您从中复制的方法之外,也没有引用现有的 load()
方法,并且该方法没有显示它是如何定义的。
load()
不是原生定义的,也不是在 jQuery 中定义的,请稍后查看链接中的两个帖子。以上是关于显示用ajax上传的txt文件的内容的主要内容,如果未能解决你的问题,请参考以下文章
JAVA利用commons.net.ftp.FTPClient的storeFileStream方法TXT文件上传. 已经转码UTF-16LE,上传后内容乱码