Guides

Photos and files

What Contacts can attach to their messages, on a website and in an app.

Updated October 19, 2026

Contacts attach photos to their messages, and files on a website. Your team sees them in the Conversation, and can send some too.

On a website

The attachment button is always there, with no setting, with the Install code as with @zean-chat/react and @zean-chat/vue.

  • Images: JPEG, PNG or WebP. The browser shrinks them to 1,600 pixels on the longest side before sending.
  • Files: PDF, text, CSV, Word and Excel, 10 MB at most each.
  • 6 attachments at most per message.

In a React Native app

Contacts send photos from their library, no other files. The SDK uses the photo picker installed in your app: expo-image-picker or react-native-image-picker. With neither, the chat has no photo button.

With Expo, npx expo install expo-image-picker. With React Native CLI, the command below, then the permission text in ios/<YourApp>/Info.plist.

npm install react-native-image-pickercd ios && pod install
  • Nothing to pass to ZeanChat: the SDK finds the installed picker.
  • Picked photos show above the field and upload when the message is sent.
  • 4 photos at most per message. maxPhotos on ZeanChat changes it, from 1 to 6: <ZeanChat maxPhotos={6} ... />.
  • The picker is a native module: it arrives with a new version of your app in the stores. Expo Go already has it.
  • The picker itself asks no permission, but the App Store wants a sentence about photo access from any app that includes a photo module: the NSPhotoLibraryUsageDescription key of Info.plist with React Native CLI. With Expo, the expo-image-picker plugin in app.json provides it, and its photosPermission option changes it.
  • Photos are sent as JPEG, never HEIC, so your team can open them anywhere.
  • 10 MB at most per photo.

Photos and files your team sends open in the app too: images full screen, other files in the phone’s viewer.