|
|
|
Закачиваю файл на FTP-сервер, где другая программа его должна забрать
|
|||
|---|---|---|---|
|
#18+
Мое почтение всем и благодарность заранее. Закачиваю файл на FTP-сервер. Один нюанс: на сервере бежит некая программа (не моя), которая ждет моего файла и при его получении моментально его перемещает в другое место (недоступное для меня). Собственно, взаимодействие с этой программой (создание файла для нее) и есть моя задача. Вот код, который я нашел в Интернете (в этом форуме тоже видел ссылку на нечто похожее) и слегка причесал под свои нужды: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. Пытаюсь обращаться к этому коду двумя способами, в обоих случаях возникает проблема. А именно: Способ 1. Просто запускаю с параметром sAction="STOR". В тот момент, когда у меня исполняется строка Dim response, на сервере уже появляется файл (пока нулевого размера). Та программа его сразу забирает, не дожидаясь, пока он создастся полностью. Потом она его забирает еще раз, но это создает им проблемы. Способ 2. Запускаю сначала с параметром sAction="STOR", но с другим именем файла, а потом с параметром sAction="RENAME". Тогда на файле остается какая-то блокировка, из-за которой та программа не может его забрать. При этом я сам руками могу этот файл перемещать и удалять без проблем. Что мне изменить, чтобы оно заработало - хоть по первому способу, хоть по второму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2012, 14:11 |
|
||
|
Закачиваю файл на FTP-сервер, где другая программа его должна забрать
|
|||
|---|---|---|---|
|
#18+
P.S. В приведенном отрывке используются некоторые мои переменные, которых я не пояснил. Надеюсь, что их смысл понятен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2012, 14:23 |
|
||
|
Закачиваю файл на FTP-сервер, где другая программа его должна забрать
|
|||
|---|---|---|---|
|
#18+
Раз никто не отвечает, доложу о результатах сам. Перенес строчку Dim response в конец кода, всё заработало. Возможно, это вообще лишняя переменная и ее не надо открывать и закрывать, это я не проверял. Не проверял я и способ 2 с ренеймом, только предполагаю, что можно попробовать расщепить команду request.GetResponse.Close() на две, как в остальных случаях (одной командой Dim response, а второй Close). Однако теперь мне напомнили про другую проблему. Этот код Код: vbnet 1. 2. 3. 4. 5. 6. создает файл на один байт длиннее, чем надо. В конце добавляется какой-то лишний символ. Догадываюсь, что дело в 0, fileContents.Length, буду экспериментировать, но если кто-то точно знает, как надо исправить, то буду благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2012, 12:17 |
|
||
|
Закачиваю файл на FTP-сервер, где другая программа его должна забрать
|
|||
|---|---|---|---|
|
#18+
Владимир СанычДогадываюсь, что дело в 0, fileContents.Length Догадка была верна. Исправил на 0, fileContents.Length - 1, проблема исчезла. Теперь если у кого-то возникнут похожие вопросы, то в этом форуме будет топик на эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 17:27 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37834515&tid=1359501]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 395ms |

| 0 / 0 |
