Не могу записать файл в классическом asp
-
23-08-2019 - |
Вопрос
Хорошо, я давно не работал с классическим asp, так что я немного заржавел.Вот мой вопрос.
Я пытаюсь записать файл в файловую систему с помощью FSO.Код ниже очень прост.Однако файл не отображается и ошибок не возникает.Я знаю, что он запускает код, потому что я могу добавить ответ.writes до и после этого фрагмента, и они оба появятся в выходных данных.Однако файл не создается, ошибка не возникает.Я даже изменил его, так что это ложный способ вызвать ошибку.Никаких кубиков.Я добавил всем, кто имеет права на чтение и запись в каталоге.Все еще такой же.
Идеи?
Вот мой код:
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)
Вы забыли второй параметр — режим ввода-вывода.Вы должны использовать значение 1 для записи:
Set objTextStream = objFSO.OpenTextFile("d:\test.txt", 1, True)
Альтернативно, вы можете использовать CreateTextFile
вместо этого метод:
Set objTextStream = objFSO.CreateTextFile("d:\test.txt", True)