469,889 Members | 1,241 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,889 developers. It's quick & easy.

javascript and write to text file

Hi,
I understand that for security and other reasons that javascript does
not support writing/reading
to text files. I am looking for a way that will however.
This is what i am trying to do. I want to develop a simple html page
that is run locally on a windows
2000 box in IE. The page will have a browse button to select a source
folder, either locally or a network
computer on same lan. A destination folder, either locally or a network
computer on same lan
These two paths will be written to a text file.
Then the page has two fields, A and B. Both A and B have their own
'Add' Buttons. So I would
enter a number into either field A or B and hit add.
Then the whole form has a Reset and Submit Button. So once I was done
entering all the data into
all fields, I would hit submit and create a text file from it.
I made this quickly to give an idea
http://www.largeprojections.com/js/page1.htm

One thing i would like to do is display all the data I have entered,
so once I select the Source folder,
it displays on the page. Likewise with the data in Fields A and B once
I add it.
So the page may look like this
http://www.largeprojections.com/js/page2.htm
It wouldn't have to look or behave just like this, but just a way for me
to see what has been entered.

so then it creates a text file and all the values need to be separated
by a comma, so the end result
would be
data.txt
-----------------------------------------------------------------------------------
Source, F:\pictures\photos,
Destination, \\Chuckwhite\c\My Shared Folder,
A, 394859, 493029, 584920, 938934, 843234, 839238, 950535, 3438595,
349450, 239405, 839049,
930499, 039483,
B, 304893, 930984, 930945, 948404, 340594, 483920, 849302, 483920,
849472, 138594, 039483,
585048, 9302938, 893849, 9304849, 938403, 823940, 734892, 83749, 847433,
-------------------------------------------------------------------------------------
Any help or suggestions on how to do this is appreciated,
Chuck

Jul 20 '05 #1
6 7912
chuck clark hu kiteb:
Hi,
I understand that for security and other reasons that javascript
does not support writing/reading
to text files. I am looking for a way that will however.


Eh? I thought you just that you understood it to be impossible.
--
--
Fabian
Visit my website often and for long periods!
http://www.lajzar.co.uk

Jul 20 '05 #2
chuck clark wrote:
Hi,
I understand that for security and other reasons that javascript does
not support writing/reading
to text files. I am looking for a way that will however.
This is what i am trying to do. I want to develop a simple html page
that is run locally on a windows
2000 box in IE. The page will have a browse button to select a source
folder, either locally or a network
computer on same lan. A destination folder, either locally or a network
computer on same lan
These two paths will be written to a text file.
Then the page has two fields, A and B. Both A and B have their own
'Add' Buttons. So I would
enter a number into either field A or B and hit add. Then the whole
form has a Reset and Submit Button. So once I was done entering all the
data into
all fields, I would hit submit and create a text file from it. I made
this quickly to give an idea
http://www.largeprojections.com/js/page1.htm

One thing i would like to do is display all the data I have entered, so
once I select the Source folder,
it displays on the page. Likewise with the data in Fields A and B once
I add it.
So the page may look like this
http://www.largeprojections.com/js/page2.htm
It wouldn't have to look or behave just like this, but just a way for me
to see what has been entered.

so then it creates a text file and all the values need to be separated
by a comma, so the end result
would be
data.txt
-----------------------------------------------------------------------------------

Source, F:\pictures\photos,
Destination, \\Chuckwhite\c\My Shared Folder,
A, 394859, 493029, 584920, 938934, 843234, 839238, 950535, 3438595,
349450, 239405, 839049,
930499, 039483,
B, 304893, 930984, 930945, 948404, 340594, 483920, 849302, 483920,
849472, 138594, 039483,
585048, 9302938, 893849, 9304849, 938403, 823940, 734892, 83749, 847433,
-------------------------------------------------------------------------------------

Any help or suggestions on how to do this is appreciated,
Chuck


I know that Hyper Text Applications (HTA) allow you to override a lot of
security features... and I _thought_ you could write files with it, but
I am not sure. It only works with IE, but it sounds like that with your
requirements, this might not be a problem.

I know that MSDN has minimal documentation for the HTA technology. I
also know that there are a few other platform-specific technologies that
do this type of thing, but I cant think of them off the top of my head.
They end up being extensions.

Brian

Jul 20 '05 #3

"Brian Genisio" <Br**********@yahoo.com> wrote in message news:40********@10.10.0.241...
chuck clark wrote:
Hi,
I understand that for security and other reasons that javascript does
not support writing/reading
to text files. I am looking for a way that will however.
This is what i am trying to do. I want to develop a simple html page
that is run locally on a windows
2000 box in IE. The page will have a browse button to select a source
folder, either locally or a network
computer on same lan. A destination folder, either locally or a network
computer on same lan
These two paths will be written to a text file.
Then the page has two fields, A and B. Both A and B have their own
'Add' Buttons. So I would
enter a number into either field A or B and hit add. Then the whole
form has a Reset and Submit Button. So once I was done entering all the
data into
all fields, I would hit submit and create a text file from it. I made
this quickly to give an idea
http://www.largeprojections.com/js/page1.htm

One thing i would like to do is display all the data I have entered, so
once I select the Source folder,
it displays on the page. Likewise with the data in Fields A and B once
I add it.
So the page may look like this
http://www.largeprojections.com/js/page2.htm
It wouldn't have to look or behave just like this, but just a way for me
to see what has been entered.

so then it creates a text file and all the values need to be separated
by a comma, so the end result
would be
data.txt
-----------------------------------------------------------------------------------

Source, F:\pictures\photos,
Destination, \\Chuckwhite\c\My Shared Folder,
A, 394859, 493029, 584920, 938934, 843234, 839238, 950535, 3438595,
349450, 239405, 839049,
930499, 039483,
B, 304893, 930984, 930945, 948404, 340594, 483920, 849302, 483920,
849472, 138594, 039483,
585048, 9302938, 893849, 9304849, 938403, 823940, 734892, 83749, 847433,
-------------------------------------------------------------------------------------

Any help or suggestions on how to do this is appreciated,
Chuck

I know that Hyper Text Applications (HTA) allow you to override a lot of
security features... and I _thought_ you could write files with it, but
I am not sure. It only works with IE, but it sounds like that with your


HTA DOES allow read/write to the local file system....

http://msdn.microsoft.com/workshop/a...taoverview.asp
requirements, this might not be a problem.

I know that MSDN has minimal documentation for the HTA technology. I
also know that there are a few other platform-specific technologies that
do this type of thing, but I cant think of them off the top of my head.
They end up being extensions.

Brian

Jul 20 '05 #4
Hi,

Fabian wrote:
chuck clark hu kiteb:

Hi,
I understand that for security and other reasons that javascript
does not support writing/reading
to text files. I am looking for a way that will however.

Eh? I thought you just that you understood it to be impossible.


He never said it was impossible. He said that JavaScript does not
support it, which is correct (at least client-side JavaScript). However,
there are possibilities, using Java classes or ActiveX technology (which
is not JavaScript, but which can be scripted).

However, the security model of browsers often blocks this, at least in
normal security conditions.

Hereunder an example that I use with local HTML files or HTA applications.

Laurent

CExplorer.ALERT001 = "This method works only in Netscape 4.* "
+ "and Internet Explorer";
CExplorer.ALERT002 = "The file already exists, overwrite?";
CExplorer.ALERT003 = "This method works only on Windows platforms.";

CExplorer.saveTextFile = function( strFullPath, strContent, bOverwrite )
{
if ( ( navigator.appName != "Netscape" )
&& ( navigator.appName != "Microsoft Internet Explorer" ) )
{
alert( CExplorer.ALERT001 );
return;
}

if ( ( navigator.appName == "Netscape" )
&& ( parseFloat( navigator.appVersion ) >= 5 ) )
{
alert( CExplorer.ALERT001 );
return;
}

if ( navigator.platform.indexOf( "Win" ) == -1 )
{
alert( CExplorer.ALERT003 );
return;
}

if ( navigator.appName.indexOf( "Netscape" ) == -1 )
{
var fso = new ActiveXObject( "Scripting.FileSystemObject" );

if ( bOverwrite
|| !fso.FileExists( strFullPath )
|| confirm( CExplorer.ALERT002 ) )
{
var flOutput = fso.CreateTextFile( strFullPath, true );
flOutput.Write( strContent );
flOutput.Close();
return true;
}
else
{
return false;
}
}
else
{
netscape.security.PrivilegeManager.enablePrivilege (
"UniversalFileRead" );

var flCheck = new java.io.File( strFullPath );

if ( bOverwrite
|| !flCheck.exists()
|| confirm( CExplorer.ALERT002 ) )
{
netscape.security.PrivilegeManager.enablePrivilege (
"UniversalFileWrite" );
var fsOutput = new java.io.FileOutputStream( strFullPath );
var flOutput = new java.io.DataOutputStream( fsOutput );

flOutput.writeBytes( strContent );

flOutput.flush();
fsOutput.close();
return true;
}
else
{
return false;
}
}
}
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
Private/Malaysia: http://mypage.bluewin.ch/lbugnion
Support children in Calcutta: http://www.calcutta-espoir.ch

Jul 20 '05 #5
"Laurent Bugnion, GalaSoft" <ga*********@bluewin.ch> wrote in message news:<40**********@news.bluewin.ch>...
Hi,

Fabian wrote:
chuck clark hu kiteb:

Hi,
I understand that for security and other reasons that javascript
does not support writing/reading
to text files. I am looking for a way that will however.

Eh? I thought you just that you understood it to be impossible.


He never said it was impossible. He said that JavaScript does not
support it, which is correct (at least client-side JavaScript). However,
there are possibilities, using Java classes or ActiveX technology (which
is not JavaScript, but which can be scripted).

However, the security model of browsers often blocks this, at least in
normal security conditions.

Hereunder an example that I use with local HTML files or HTA applications.

Laurent

CExplorer.ALERT001 = "This method works only in Netscape 4.* "
+ "and Internet Explorer";
CExplorer.ALERT002 = "The file already exists, overwrite?";
CExplorer.ALERT003 = "This method works only on Windows platforms.";

CExplorer.saveTextFile = function( strFullPath, strContent, bOverwrite )
{
if ( ( navigator.appName != "Netscape" )
&& ( navigator.appName != "Microsoft Internet Explorer" ) )
{
alert( CExplorer.ALERT001 );
return;
}

if ( ( navigator.appName == "Netscape" )
&& ( parseFloat( navigator.appVersion ) >= 5 ) )
{
alert( CExplorer.ALERT001 );
return;
}

if ( navigator.platform.indexOf( "Win" ) == -1 )
{
alert( CExplorer.ALERT003 );
return;
}

if ( navigator.appName.indexOf( "Netscape" ) == -1 )
{
var fso = new ActiveXObject( "Scripting.FileSystemObject" );

if ( bOverwrite
|| !fso.FileExists( strFullPath )
|| confirm( CExplorer.ALERT002 ) )
{
var flOutput = fso.CreateTextFile( strFullPath, true );
flOutput.Write( strContent );
flOutput.Close();
return true;
}
else
{
return false;
}
}
else
{
netscape.security.PrivilegeManager.enablePrivilege (
"UniversalFileRead" );

var flCheck = new java.io.File( strFullPath );

if ( bOverwrite
|| !flCheck.exists()
|| confirm( CExplorer.ALERT002 ) )
{
netscape.security.PrivilegeManager.enablePrivilege (
"UniversalFileWrite" );
var fsOutput = new java.io.FileOutputStream( strFullPath );
var flOutput = new java.io.DataOutputStream( fsOutput );

flOutput.writeBytes( strContent );

flOutput.flush();
fsOutput.close();
return true;
}
else
{
return false;
}
}
}

You could add more branches and then use JavaScript via XPCOM to read
or write to local files in Mozilla and Netscape 7. Check out the
following link for details:

http://www.faqts.com/knowledge_base/...d/23360/fid/53
Jul 20 '05 #6
Hi Mark,

Mark Szlazak wrote:
You could add more branches and then use JavaScript via XPCOM to read
or write to local files in Mozilla and Netscape 7. Check out the
following link for details:

http://www.faqts.com/knowledge_base/...d/23360/fid/53


Thanks a lot for that. I was looking for this kind of things, without
having had the time to do a correct research and actually find the solution.

Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
Private/Malaysia: http://mypage.bluewin.ch/lbugnion
Support children in Calcutta: http://www.calcutta-espoir.ch

Jul 20 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by annoyingmouse2002 | last post: by
4 posts views Thread by JesusFreak | last post: by
16 posts views Thread by Christopher Benson-Manica | last post: by
5 posts views Thread by Lucian Sandor | last post: by
3 posts views Thread by Brit | last post: by
5 posts views Thread by mgershma | last post: by
2 posts views Thread by verci | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.