2011-10-13 5 views
5

URL의 확장 파일을 가져오고 싶습니다. 예 : http://www.iranfairco.com/download-file/02912bb889cb24 이 파일의 확장자가 gif 인 경우.파일의 확장자를 얻으십시오 (편집)

편집 : 예 "http://www.online-convert.com/result/d8b423c3cbc05000cc52ce7015873e72"

방법이 URL의 확장을 얻을 수 있습니다 제발 도와주세요이 URL에 대한

?

+6

를하려고 생각하지 않는다 여기에 gif를 나타내는 것은 없습니다. URL에'.gif '가 포함되어 있지 않고 HTTP 요청이 404를 반환합니다. – CodesInChaos

답변

10

Path.GetExtension이 왜 효과가 없습니까?

편집
아, 당신의 URL이 후있는 확장자를 지정하지 않도록. 즉, 어떤 것이 든이 그 뒤에있을 수 있습니다.

URL의 문자열 값을 검사하면 그 뒤에 무엇이 있는지 알 수 없습니다. 귀하의 (두 번째) 예제 지점 (궁극적으로 .gif 파일)이지만 .jpg, .doc (또는 심지어 .exe) 일 수도 있습니다.

돌아 오는 것을 보려면 웹 요청을해야합니다. 일반적으로 머리글 만 가져오고 (컨텐트 유형을 검사하기 위해) HEAD를 시도 할 수는 있지만 여기서는 작동하지 않을 것이라고 생각합니다. Fiddler를 사용하여 돌아 오는 것을 확인한 다음 질문을 구체화 할 수 있습니다.

+0

웹 URL에서 작동합니까? – musefan

+1

'Path.GetExtension ("http://www.someserver.com/image.gif")'.gif " –

+0

아, 예, 작동 하겠지만 주어진 예제에는 해당되지 않습니다 ... 나는 매우 놀라운 기능을 발견, 나는 매우 감명을 기다리고 있었다 : D – musefan

0

문자열을 '.'문자로 분할 할 수 있습니다. 여기 .. ​​반환 된 배열에

+0

아니요.이 파일 이름은 hash.filename = 02912bb889cb24 – ashkufaraz

+0

입니다. 문자열에 파일 확장자가없는 경우 ... 예를 들어 보겠습니다. does not는 – musefan

+0

예는 실패이기 때문에 분명히 ... 그게 내 잘못이야? – Rob

6

확인을 마지막 문자열을 얻을 :

http://www.java2s.com/Code/CSharp/Network/GetHTTPResponseheaders.htm

당신은 당신에게 "이미지/GIF"와 같은 무언가를 제공해야 response.ContentType에 관심이있을 것 GIF 이미지

+0

설정되는 콘텐츠 헤더에 따라 다릅니다. asp.net 태그가 주어지면 @Curt의 대답이 더 정확하고 필요한 것은 실제로 asp에서 내용 유형을 적용하는 것이라고 생각합니다. – stevenrcfox

+0

@Overflow, URL 형식의 처리를 처리 할 때 서버에서 콘텐츠 형식을 설정해야한다는 것을 알고 있습니다.그리고 내 가정은이 URL이 (URL 자체에서 제안 된 것처럼) 파일 다운로드를 제공하는 데 사용되고, 서버가 이미지를 포함하는 응답 스트림을 반환하여 콘텐츠 유형을 설정한다는 것입니다. 물론 내용 유형이 잘못 될 수 있으며 구현에 따라 다릅니다. 하지만 올바르게 구현하려면 구현에서 올바른 콘텐츠 유형을 제공해야하므로 내 대답에 따라 파일 형식을 찾을 수 있습니다. – musefan

1

이 URL은 파일 다운로드 용 페이지로 연결되어있는 것으로 보입니다.

02912bb889cb24은 아마도 해당 파일에 대한 데이터베이스 참조 일 것입니다.

따라서이 시스템에 대한 API에 액세스하지 않고, 나는 그것이 URL을 통해 액세스 파일의 파일 확장자를 해결하기 위해 가능한 모든

+0

나는 이것을 가장 정확한 답이라고 생각하는 경향이있다. 몇 가지 추가 사항이있다. 1. 파일이 업로드되면 내용 유형을 가져 와서 파일에 저장할 수 있어야한다. 데이터베이스 파일. 그런 다음 파일이 다운로드되면 콘텐츠 유형을 다시 설정할 수 있어야합니다. – stevenrcfox

4

내가 볼이

string path = @"http://www.iranfairco.com/download-file/02912bb889cb24.gif"; 
string e = Path.GetExtension(path); 
+0

URL이 29493903과 같지 않음 290930232.gif – ashkufaraz

관련 문제