Generally file operation in ColdFusion is very simple, we only need a
ColdFusion tag "CFFILE" to do the file operation
like read,write,append and delete etc.
To make a simple file write Operation in ColdFusion we will write the code as
follows:
<cffile
action="write"
file="D:/test.txt"
output="Testing"
/>
To write this file(test.txt) in some shared directory like
"\\192.168.10.208\Photos\",
we will write the code as :
<cffile
action="write"
file="\\192.168.10.208\Photos\text.txt"
output="Testing">
But, this code will give an error message:
"An error occured when performaing a
file operation write on file \\192.168.10.208\test.txt.
The cause of this exception was:
java.io.FileNotFoundException: \\192.168.10.208\Photos\test.txt
(Access is denied)."
After getting this message I tried by creating "Map Network Drive"
and also by creating a "Map Network Location" but all the
testing was in vein.
The main Cause of the Error:
The ColdFusion application doesn't have enough permission to access
the shared directory. But, the user by which you have login to the
system have rights to access the shared directory.
How we will give Permission to Our ColdFusion Server to Access the
Network Shared Directory:
The ColdFusion runs in Windows as a service and if we look ino all
the services of the machine we will find as follow:
Here, you can notice that for ColdFusion service the LogOnAs value
is "LocalSyatem". It means ColdFusion service is started as
"LocalSystem" login and this login doesn't have enough
permission to do any operation on network. So, in order to make the
required file operation in the Shared Directory we will have to change the LogOnAs value for
ColdFusion service.
How we will change the LogOnAs value for ColdFusion(or any window
service):
- Right Click on the ColdFusion Service then click on "properties".
- Click on "Log On" tab. Then you will see a screen like this:
- Select "This account" radio button .Then click on "Browse" button and select the user by which you want to start the service. You should choose the user who have sufficient permission to create file on the shared directory and also have required permission in local.
- After the set up you can see the effect as follow(sample example):
After restarting, the code will work and we can able to write the file in a Shared directory of some other computer.
very nice tips.
ReplyDeleteGood one Upendra.
ReplyDeleteVery good tip upendra
ReplyDeleteSuperb Tips Upendra, Keep coming more :)
ReplyDeleteThis is a nice tip, good research on this. Good Job.
ReplyDelete@All: Thanks. :)
ReplyDelete