It was difficult to find a graphql query with file upload. So searched from other sources and found this solution
https://lighthouse-php.com/master/digging-deeper/file-uploads.html#setup
First Step:
Just to test if file upload is working
Include this in your schema file:
scalar Upload
@scalar(class: “Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\Upload”)
extend type Mutation {
“A Test Mutation to upload file”
upload(file: Upload!): String
}
php artisan lighthouse:mutation Upload
Upload.php
<?phpnamespace App\GraphQL\Mutations;
class Upload
{
* @param null $_
* @param array<string, mixed> $args
*/
public function __invoke($_, array $args)
{
$file = $args[‘file’];
return $file->storePublicly(‘uploads’);
// TODO implement the resolver
}
}
For single file upload
For multiple file upload
For my query this worked:
Multiple name file uploaded can be referred from https://waihein.medium.com/uploading-multiple-files-in-laravel-lighthouse-graphql-19d1f571c525
Single File Upload in Single Input
mutation($fileff:Upload!){
upload(file:$fileff)
}
Mutation Code:
“A Test Mutation to upload single”upload(file: Upload!): String!
MUltiple Upload in a single input:
mutation($logoImageFile:[Upload]! ){
uploadMultiFilee(logoImageFile: $logoImageFile)
}In Mutation:
“A Test Mutation to upload single input multiple files”uploadMultiFilee(logoImageFile: [Upload]!): String
Single file upload into multiple input names
mutation($logoImageFile:Upload!,$coverImageFile:Upload!){
uploadFiles(logoImageFile: $logoImageFile, coverImageFile: $coverImageFile)
}
Mutation Code:"A Test Mutation to upload multiple inout files"
uploadFiles(logoImageFile: Upload!, coverImageFile: Upload!): String