Как исправить ошибку «невозможно открыть документ, файл, кажется, поврежден» при открытии документа, написанного с использованиемact-native fs? - PullRequest
1 голос
/ 24 мая 2019

Я пытался записать данные в файл документа, используя react-native-fs, а затем отправить этот документ другому пользователю, используя пакет react-native-mail.

Я успешно реализовал это, кроме одной вещи. Когда я пытаюсь открыть документ, он показывает « невозможно открыть документ, файл кажется поврежденным ». Но когда я пытаюсь отправить это в формате txt, я могу открыть файл и просмотреть его содержимое. Почему я не могу воспроизвести то же самое в случае формата doc. Ниже мой код.

if (
        permRes["android.permission.READ_EXTERNAL_STORAGE"] ===
          PermissionsAndroid.RESULTS.GRANTED &&
        permRes["android.permission.WRITE_EXTERNAL_STORAGE"] ===
          PermissionsAndroid.RESULTS.GRANTED
      ) {
        if (data !== null) {
          data.map(item => {
            var path = RNFS.ExternalStorageDirectoryPath + "/test.doc";
            console.log("pathpath", path);
            RNFS.writeFile(
              path,
              "Project Details\n" +
                "\nProject name: " +
                item.project_name +
                "\nProject Description: " +
                item.project_description +
                "\nClient name: " +
                item.client_name +
                "\nCompany: " +
                item.company +
                "\nPhone number: " +
                item.phone_number +
                "\nEmail: " +
                item.email,
              "utf8"
            )
              .then(success => {
                console.log("FILE WRITTEN");
                Mailer.mail(
                  {
                    subject:
                      Strings.string_rem + " :" + Strings.string_projectDetails,
                    recipients: ["vinaynarayankutty@gmail.com"],
                    body: "<b>This is a test document</b>",
                    isHTML: true,
                    attachment: {
                      path: RNFS.ExternalStorageDirectoryPath + "/test.doc",
                      type: "doc",
                      name: "Project details"
                    }
                  },
                  (error, event) => {
                    Alert.alert(
                      error,
                      event,
                      [
                        {
                          text: "Ok",
                          onPress: () => console.log("OK: Email Error Response")
                        },
                        {
                          text: "Cancel",
                          onPress: () =>
                            console.log("CANCEL: Email Error Response")
                        }
                      ],
                      { cancelable: true }
                    );
                  }
                );
              })
              .catch(err => {
                console.log(err.message);
                alert(err.message);
              });
          });
        }
      }
...