클래식 ASP에서 파일을 쓸 수 없습니다
-
23-08-2019 - |
문제
좋아, 클래식 ASP와 함께 일한 이래로 시간이 지났으므로 약간 녹슬 었습니다. 여기 내 질문이 있습니다.
FSO를 사용하여 파일 시스템에 파일을 작성하려고합니다. 아래 코드는 매우 간단합니다. 그러나 파일이 나타나지 않고 오류가 나타나지 않습니다. 응답을 추가 할 수 있기 때문에 코드를 실행하고 있다는 것을 알고 있습니다. 그러나 파일이 생성되지 않으며 오류가 발생하지 않습니다. 나는 심지어 그것을 바꾸어 오류를 강요하는 가짜 경로입니다. 주사위가 없습니다. 디렉토리 권한을 읽고 쓸 수 있도록 모든 사람을 추가했습니다. 여전히 동일합니다.
아이디어?
내 코드는 다음과 같습니다.
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Open the text file
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile("d:\test.txt", True)
'Display the contents of the text file
objTextStream.WriteLine "howdy"
'Close the file and clean up
objTextStream.Close
Set objTextStream = Nothing
Set objFSO = Nothing
해결책
이 시도:
<%
if Append = true then
iMode = 8
else
iMode = 2
end if
set oFs = server.createobject("Scripting.FileSystemObject")
set oTextFile = oFs.OpenTextFile("C:\wwwroot\Test.txt", iMode, True)
oTextFile.Write "Test Content"
oTextFile.Close
set oTextFile = nothing
set oFS = nothing
%>
내 디렉토리에서 권한을 설정 한 후이 지역에서 시도해 보았습니다.
여기에서 원래 소스를 얻을 수 있습니다.http://www.freevbcode.com/showcode.asp?id=89
다른 팁
코드가 오류 메시지를 생성하지 않는 유일한 이유는 페이지에이를 가지고 있기 때문입니다.
On Error Resume Next
당신이 방금 본 이유 때문에 그것은 나쁘다. 오류 메시지를 조용히 무시하고 예상대로 작동하지 않는 이유에 대한 단서가 없습니다.
(오류를 예상하는 코드의 격리 된 부분에만 사용되어야하며 실제로 각 작업 후에 오류 조건을 확인하십시오.)
페이지에서이를 제거하고 아마도 얻을 수있는 오류 메시지는이 라인의 호출에 대해 매개 변수가 유효하지 않다는 것입니다.
Set objTextStream = objFSO.OpenTextFile("d:\test.txt", True)
I/O 모드 인 두 번째 매개 변수를 잊어 버렸습니다. 쓰기에는 값 1을 사용해야합니다.
Set objTextStream = objFSO.OpenTextFile("d:\test.txt", 1, True)
또는 사용할 수 있습니다 CreateTextFile
대신 방법 :
Set objTextStream = objFSO.CreateTextFile("d:\test.txt", True)