I used the follwing code to download the text file from my server location.
my php file to read the following code name is contacts.php
it is downloading the text file but , this text file includes the script of contacts.php too -
$select_group = $_REQUEST[select_group];
-
/*echo "file name ". $select_file = $_FILES['frm_file']['name'];*/
-
if($select_group == 1){
-
$qry_contacts = "select eml_id from tbl_contacts ";
-
}else{
-
$qry_contacts = "select eml_id from tbl_contacts where ctc_grp_name = '$select_group'";
-
}
-
$res_contacts = mysql_query($qry_contacts);
-
$ctr_contacts = mysql_num_rows($res_contacts);
-
$write_to_file ="";
-
for($i=0;$i<$ctr_contacts;$i++){
-
if($write_to_file ==""){
-
$write_to_file = mysql_result($res_contacts,$i,eml_id);
-
}else{
-
$write_to_file .= ",".mysql_result($res_contacts,$i,eml_id);
-
}
-
}
-
// if($select_file ==""){
-
$outputfile = "/location of file/output.txt";
-
// }else{
-
// $outputfile = $select_file;
-
//}
-
if(!is_writable($outputfile)) {
-
$file_message_flag = true;
-
$file_message = "Error in permissions";
-
}else{
-
$file2 = fopen($outputfile,"w");
-
if(!$file2){
-
$file_message_flag = true;
-
$file_message = "Error writing to the output file.\n";
-
}else {
-
fwrite($file2,$write_to_file);
-
fclose($file2);
-
//$file_message_flag = true;
-
//$file_message = "E-mail ids Successfully Imported..";
-
-
-
}
-
}
-
-
-
-
-
include("../include/global.php");
-
$file_value = "output.txt";
-
-
define('ALLOWED_REFERRER', '');
-
-
// Download folder, i.e. folder where you keep all files for download.
-
// MUST end with slash (i.e. "/" )
-
define('BASE_DIR','location to the directory');
-
-
// log downloads? true/false
-
define('LOG_DOWNLOADS',true);
-
-
// log file name
-
define('LOG_FILE','downloads.log');
-
-
// Allowed extensions list in format 'extension' => 'mime type'
-
// If myme type is set to empty string then script will try to detect mime type
-
// itself, which would only work if you have Mimetype or Fileinfo extensions
-
// installed on server.
-
$allowed_ext = array (
-
-
// archives
-
'zip' => 'application/zip',
-
-
// documents
-
'txt' => 'application/txt',
-
'pdf' => 'application/pdf',
-
'doc' => 'application/msword',
-
'xls' => 'application/vnd.ms-excel',
-
'ppt' => 'application/vnd.ms-powerpoint',
-
-
// executables
-
'exe' => 'application/octet-stream',
-
-
// images
-
'gif' => 'image/gif',
-
'png' => 'image/png',
-
'jpg' => 'image/jpeg',
-
'jpeg' => 'image/jpeg',
-
-
// audio
-
'mp3' => 'audio/mpeg',
-
'wav' => 'audio/x-wav',
-
-
// video
-
'mpeg' => 'video/mpeg',
-
'mpg' => 'video/mpeg',
-
'mpe' => 'video/mpeg',
-
'mov' => 'video/quicktime',
-
'avi' => 'video/x-msvideo'
-
);
-
-
-
-
####################################################################
-
### DO NOT CHANGE BELOW
-
####################################################################
-
-
// If hotlinking not allowed then make hackers think there are some server problems
-
if (ALLOWED_REFERRER !== ''
-
&& (!isset($_SERVER['HTTP_REFERER']) || strpos(strtoupper($_SERVER['HTTP_REFERER']),strtoupper(ALLOWED_REFERRER)) === false)
-
) {
-
die("Internal server error. Please contact system administrator.");
-
}
-
-
// Make sure program execution doesn't time out
-
// Set maximum script execution time in seconds (0 means no limit)
-
set_time_limit(0);
-
-
if (!isset($file_value) || empty($file_value)) {
-
die("Please specify file name for download.");
-
}
-
-
// Get real file name.
-
// Remove any path info to avoid hacking by adding relative path, etc.
-
$fname = basename($file_value);
-
-
// Check if the file exists
-
// Check in subfolders too
-
function find_file ($dirname, $fname, &$file_path) {
-
-
$dir = opendir($dirname);
-
-
while ($file = readdir($dir)) {
-
if (empty($file_path) && $file != '.' && $file != '..') {
-
if (is_dir($dirname.'/'.$file)) {
-
find_file($dirname.'/'.$file, $fname, $file_path);
-
}
-
else {
-
if (file_exists($dirname.'/'.$fname)) {
-
$file_path = $dirname.'/'.$fname;
-
return;
-
}
-
}
-
}
-
}
-
-
} // find_file
-
-
// get full file path (including subfolders)
-
$file_path = '';
-
find_file(BASE_DIR, $fname, $file_path);
-
-
if (!is_file($file_path)) {
-
die("File does not exist. Make sure you specified correct file name.");
-
}
-
-
// file size in bytes
-
$fsize = filesize($file_path);
-
-
// file extension
-
$fext = strtolower(substr(strrchr($fname,"."),1));
-
-
// check if allowed extension
-
if (!array_key_exists($fext, $allowed_ext)) {
-
die("Not allowed file type.");
-
}
-
-
// get mime type
-
if ($allowed_ext[$fext] == '') {
-
$mtype = '';
-
// mime type is not set, get from server settings
-
if (function_exists('mime_content_type')) {
-
$mtype = mime_content_type($file_path);
-
}
-
else if (function_exists('finfo_file')) {
-
$finfo = finfo_open(FILEINFO_MIME); // return mime type
-
$mtype = finfo_file($finfo, $file_path);
-
finfo_close($finfo);
-
}
-
if ($mtype == '') {
-
$mtype = "application/force-download";
-
}
-
}
-
else {
-
// get mime type defined by admin
-
$mtype = $allowed_ext[$fext];
-
}
-
-
// Browser will try to save file with this filename, regardless original filename.
-
// You can override it if needed.
-
-
if (!isset($_GET['fc']) || empty($_GET['fc'])) {
-
$asfname = $fname;
-
}
-
else {
-
// remove some bad chars
-
$asfname = str_replace(array('"',"'",'\\','/'), '', $_GET['fc']);
-
if ($asfname === '') $asfname = 'NoName';
-
}
-
-
// set headers
-
header("Pragma: public");
-
header("Expires: 0");
-
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
-
header("Cache-Control: public");
-
header("Content-Description: File Transfer");
-
header("Content-Type: $mtype");
-
//header("Content-Type: application/txt");
-
header("Content-Disposition: attachment; filename=\"$asfname\"");
-
//header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
-
header("Content-Transfer-Encoding: binary");
-
header("Content-Length: " . $fsize);
-
-
-
-
//header("Content-Length: " .filesize($filename));
-
//readfile(basename($filename));
-
// download
-
// @readfile($file_path);
-
$file = @fopen($file_path,"rb");
-
if ($file) {
-
while(!feof($file)) {
-
print(fread($file, 1024*8));
-
flush();
-
if (connection_status()!=0) {
-
@fclose($file);
-
die();
-
}
-
}
-
@fclose($file);
-
}
-
-
// log downloads
-
if (!LOG_DOWNLOADS) die();
-
-
$f = @fopen(LOG_FILE, 'a+');
-
if ($f) {
-
@fputs($f, date("m.d.Y g:ia")." ".$_SERVER['REMOTE_ADDR']." ".$fname."\n");
-
@fclose($f);
-
}
-
I attached the output text file with this
8 3353 Atli 5,058
Recognized Expert Expert
Hey.
I don't see a reference to that file anywhere in this code. How exactly are they related?
I attached the output text file with this
No you didn't :)
@Atli
Can you help me how to attach a text file with this
Below is the output of my text file - output.txt
user1@exampl.co m,user2@example .com
I expect only above email ids, but below script also it displays... - <!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>Contacts</title>
-
<link
-
-
href="../css/css_rahma.css" type="text/css" rel="stylesheet" />
-
<link rel="stylesheet" href="assets/style.css" type="text/css" media="all" />
-
<script
-
-
language="javascript" type="text/javascript">
-
function ajaxFunction(){
-
var ajaxRequest;
-
try{
-
ajaxRequest =
-
-
new XMLHttpRequest();
-
}catch(e){
-
try{
-
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
-
-
-
}catch(e){
-
try{
-
ajaxRequest = new
-
-
ActiveXObject("Microsoft.XMLHTTP");
-
}catch(e){.................
-
.......................
Atli 5,058
Recognized Expert Expert
You aren't wrapping the download script in HTML, are you?
Anything that is in the page that sends the text file is sent, not just the file itself. To put it differently; the PHP script doesn't send the text file, it is the text file. Anything that is inside it, or is included inside it, will be included in the file you receive.
@Atli
can you give a detailed replay , I don't understand what you mean by 'wrapping the download script in HTML'
Atli 5,058
Recognized Expert Expert - <?php
-
header('content-type: text/plain');
-
?>
-
<html>
-
<head><title>This is HTML!</title></head>
-
<body>
-
<?php
-
passthru('mytextfile.txt');
-
?>
-
</body>
-
</html>
This is PHP code wrapped in HTML. This would appear as a text-file, but include the HTML. - If you wanted only to get the text from the file, you would need to get rid of the HTML - <?php
-
header('content-type: text/plain');
-
passthru('mytextfile.txt');
-
?>
below is the code executing while pressing the button 'btn_export'
output of this script should be - only the selected email ids to download to text file output.txt
can you please check any mistake in this code.? - if(isset($_REQUEST[btn_export])){
-
$select_group = $_REQUEST[select_group]; // select_group is a list box to select the choice
-
if($select_group == 1){
-
$qry_contacts = "select eml_id from tbl_contacts ";
-
}else{
-
$qry_contacts = "select eml_id from tbl_contacts where ctc_grp_name = '$select_group'";
-
}
-
$res_contacts = mysql_query($qry_contacts);
-
$ctr_contacts = mysql_num_rows($res_contacts);
-
$write_to_file ="";
-
for($i=0;$i<$ctr_contacts;$i++){
-
if($write_to_file ==""){
-
$write_to_file = mysql_result($res_contacts,$i,eml_id);
-
}else{
-
$write_to_file .= ",".mysql_result($res_contacts,$i,eml_id);
-
}
-
}
-
// if($select_file ==""){
-
$outputfile = "/path to text file/output.txt";
-
// }else{
-
// $outputfile = $select_file;
-
//}
-
if(!is_writable($outputfile)) {
-
$file_message_flag = true;
-
$file_message = "Permission error ";
-
}else{
-
$file2 = fopen($outputfile,"w");
-
if(!$file2){
-
$file_message_flag = true;
-
$file_message = "Error writing to the output file.\n";
-
}else {
-
fwrite($file2,$write_to_file);
-
fclose($file2);
-
//$file_message_flag = true;
-
//$file_message = "E-mail ids Successfully Imported..";
-
$file = '/path to text file/output.txt';
-
header('Content-type: text/plain');
-
header('Content-Length: '.filesize($file));
-
header('Content-Disposition: attachment; filename='.$file);
-
//readfile($file);
-
passthru($file);
-
}
-
}
-
}
Atli 5,058
Recognized Expert Expert
Overall, that code should not output any sort of HTML, only the text file.
There are a couple of things, though, that you may need to fix. - On lines #38-41 you use a $file variable. I don't see that defined anywhere. Are you sure you don't mean to use the $outputfile variable there?
- When you specify array element names as strings, they should be quoted, just like any other string. (See lines #1 and #2 in your code)
If they are not, PHP will generate a error notice. (Which will be printed as HTML by default.) - <?php
-
// This is WRONG!
-
$_REQUEST[something]
-
-
// It should be like this:
-
$_REQUEST['something']
-
?>
Also, you should check out SQL Injection and the mysql_real_esca pe_string function. - You should never pass user input directly into a SQL query without verifying that it is in fact the data you are expecting. - Failing to do so may cause problems ranging from your query failing due to invalid syntax, to you losing your entire database.
Sign in to post your reply or Sign up for a free account.
Similar topics |
by: puneet.bansal |
last post by:
Hi,
I have a frameset and in one of the frames I have two functions.
This code resides in a frame named leftFrame -
//This function downloads an Excel report
function downloadExcelReport()
{
var selectObj = top.topFrame.document.getElementById('id_chain');
document.forms.chain.value =
|
by: Rhon Stewart via DotNetMonster.com |
last post by:
Hi please visit this link :
http://www.eggheadcafe.com/articles/pfc/selfupdater.asp
I followed all the steps for listed on the link , when I execute the
application it it gives me the following error on the log file:
---
ApplicationUpdateManager.StartUpdater] :
The Updater has started; the target application's name is 'SayHello'.
Time...
|
by: Matt Mercer |
last post by:
Hi all,
Well, thanks to some smart/helpful people here my upload and download
section of my website works great! I am allowing users to upload
directly into the SQL database but files cannot exceed 1 Meg (actually
1.2M but I tell them 1 meg) and a max of five uploads per incident (it
is a security incident reporting system)
I do not want...
|
by: Mamatha |
last post by:
Hi
i have one ASP page,when i click a download button in that
page it downloads a file from net,and the file size is
nearly 70MB,so while at the time of downloading a file the
asp page displayed suddenly,page can not be displayed
error but the background process(file downloading) is
running.How can i manage that asp page without displaying...
|
by: Tomas Martinez |
last post by:
Hi there!
I'm trying to download a file in my asp.net web, but when downloading it
from a Firefox browser, instead of downloading the example.exe file, it's
downloading example.exe.htm. My code is the following:
string localfile = MyComponent.DownloadMyExe(index);
Response.ClearContent();
Response.ClearHeaders();...
| |
by: rony_16 |
last post by:
Hi,
I have a problem downloading a file .
after i connect to the website and get the stream , i treing to write
the file on the HD.
public void SaveStreamToFile(string filePath, Stream stream)
{
// If not all data was provided return false;
//if (string.IsNullOrEmpty(filePath) || stream == null)
// return false;
// System.IO.Stream...
|
by: cyusman |
last post by:
Hi,
We have just moved our application to a new webfarm server environment
which utilizing hardware load balancing, SSL off-loading and HTTP
compression off-loading.My application is running on .NET 1.1, IIS 6,
Win2003.
Now we are having problem when trying to download word documents
located in the file server. It often says Internet...
|
by: Paulo |
last post by:
Hi, after generating a text file on server and showing the path on a
hyperlink component to user download the file, shows me the error below:
"There is no build provider registered for the extension '.rem'. You can
register one in the <compilation><buildProviderssection in machine.config
or web.config. Make sure is has a...
|
by: =?Utf-8?B?VmFuZXNzYQ==?= |
last post by:
Hi all!
I am having problems on installing .NET Framework 3.5 on some machines. In
one machine the error is:
WinVerifyTrust returned -2146762751
Wintrust not on machine
Error: O arquivo
'C:\DOCUME~1\user\CONFIG~1\Temp\VSD22.tmp\WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe' foi alterado desde a sua publicação inicial.
|
by: Markus |
last post by:
I want the download button to update while a file download is in progress - "Connecting", "Downloading..", etc. But with the code below, it does not update the text. I've read about Application.DoEvents() but also heard that this isn't the best route to take? If it is OK to use Application.DoEvents(), where should I use it?
button1.Text =...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
| |
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...
| |