Если бы они - имена файлов, хорошим выбором был бы символ, который запрещен в именах файлов. Предложения до сих пор включали , | &
, которые обычно позволяются в именах файлов и поэтому могли бы привести к неоднозначностям. /
, с другой стороны, обычно не позволяется, даже в Windows. Это позволяется в URIs, и это не имеет никакого особого значения в строках запроса.
Пример:
http://someSite/someApp/myUtil.ashx?files=file1.txt|file2.bmp|file3.doc
плохо, потому что это может относиться к правильному файлу file1.txt|file2.bmp
.
http://someSite/someApp/myUtil.ashx?files=file1.txt/file2.bmp/file3.doc
однозначно относится к 3 файлам.
Я рекомендовал бы делать каждый файл его собственным параметром запроса, т.е.
myUtil.ashx?file1=file1.txt&file2=file2.bmp&file3=file3.doc
Этот способ, которым можно просто использовать стандартный анализ запроса и цикл
Необходимо ли перечислить имена файлов как строку? Большинство языков принимает массивы в querystring, таким образом, Вы могли записать это как
http://someSite/someApp/myUtil.ashx?files[]=file1.txt&files[]=file2.bmp&files[]=file3.doc
, Если это не делает, или Вы не можете использовать по некоторой другой причине, необходимо придерживаться разделителя, который или не позволяется или не необычен в имени файла. Канал (|) является хорошим, иначе Вы могли urlencode невидимый символ, так как они довольно просты в использовании в кодировании, но тяжелее на самом деле включать в имя файла.
я обычно использую массивы, когда возможный и передают по каналу иначе.
Я думаю, что рассмотрел бы использование запятых или точек с запятой.
Я всегда использовал двойные каналы "||". У меня нет достоверных свидетельств для поддержки, почему это - хороший выбор кроме 10 лет веб-программирования, и это никогда не была проблема.