2017-02-05 2 views
2

GraphQL Apollo에서 이미지를 업로드하려면 react-dropzonegraphql-server-express-upload을 사용하고 있습니다. 내 클라이언트에서 파일은 다음과 같습니다 :GraphQL 서버에 이미지 업로드

그러나 서버에서 File on client, 나는 그것을 로그인 할 때, 그것은 다음과 같습니다

{ preview: 'blob:http://localhost:3000/c622b0bd-3f0d-4f52-91f4-7676c8534c59' } 

내가 graphql-server-express-upload의 README의 지침에 따라거야하지만 지금까지 행운. 전체 이미지를 얻으려면 어떻게해야합니까?

+0

동안 사용자 쿼리 –

답변

2

apollo-upload-client을 사용하여 끝났습니다. 훌륭합니다!

+1

코드 또는 github 링크를 추가 할 수 있습니까? 대단히 감사하겠습니다! 거기에 거의 코드가 없습니다. 고맙습니다! –

4

다른 접근 방식은 업로드하기 전에 클라이언트 측에서 이진 이미지를 BASE64로 변환 한 다음 이미지를 변이의 인수로 전달 된 GraphQLInputObjectType의 BASE64 문자열로 채 웁니다. 그런 다음 서버에서 필드를 데이터베이스 열에 간단히 저장할 수 있습니다. 예를 들면 : 당신이 업로드 정적 나머지 경로를 사용하여 파일 경로의 응답과 함께 DB에서 그 나머지 경로 및 업데이트의 response`filepath`을 잡아 경로에서 이미지를 가져 오지 않는 이유

const UserInputType = new GraphQLInputObjectType({ 
    name: 'UserInput', 
    description: 'The user of our system', 

    fields:() => ({ 
    username: { 
     type: GraphQLString, 
     description: 'Name of the user' 
    }, 
    image: { 
     type: GraphQLString, 
     description: 'Image of the user' 
    } 
    }) 
});