RonRadtke / react-native-blob-util

A project committed to making file access and data transfer easier, efficient for React Native developers.
MIT License
763 stars 130 forks source link

[Error: Unexpected FileStorage response file: null] on android 14 #363

Open YASH6004 opened 5 months ago

YASH6004 commented 5 months ago

Hi,

- Steps to replicate the issue

  1. Grant permission to the app
  2. download the data with the given code [it will download the zip file from the URL using cookie-based authentication ]
  3. now delete the created folder from android > download > ${filename} [ delete the whole folder ]
  4. now try to download again it will throw this error but this will create the folder ${filename}

*here is my code sinnpet ''' export const exportClientData = async (type: 'all' | 'single', client_id?: string) => { let filepath = ''; let url = '';

if (type === 'all') { url = https://...; } else if (type === 'single') { url = https:///.......; }

// Get the app's cache directory const { fs } = ReactNativeBlobUtil; const cacheDir = Platform.OS === 'ios' ? fs.dirs.DocumentDir : fs.dirs.LegacyDownloadDir;

// Define the filename const filename = 'filename';

// Construct the full filepath if (type === 'all') { filepath = ${cacheDir}/${filename}/ClientData.zip; } else if (type === 'single') { filepath = ${cacheDir}/${filename}/${client_id}.zip; }

try { // // Ensure the directory exists // const dirPath = ${cacheDir}/${filename}; // const isDir = await fs.isDir(dirPath); // Check if the directory exists

  // if (!isDir) {
  //     await fs.mkdir(dirPath); // Create the directory if it does not exist
  // }

  // Download the file and save it to the cache directory
  const configOptions:any = Platform.select({
      ios: {
          fileCache: true,
          path: filepath,
          appendExt: 'zip',
      },
      android: {
          fileCache: true,
          path: filepath,
          appendExt: 'zip',
      },
  });

  const response = await ReactNativeBlobUtil.config(configOptions).fetch('GET', url, {
      "Accept": "*/*",
      "Accept-Encoding": "*/*",
  });
  console.log('response==>>', JSON.stringify(response, undefined, 4));
  return response;

} catch (error) { console.error('error in downloading==>', error); return error; } }; '''

YASH6004 commented 5 months ago

any update anyone?

topheroes commented 2 months ago

@YASH6004 Facing the same problem. Did you solve it?