<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set(self, key, files):
 """ Stores the state of each file embedded in the request.FILES MultiValueDict instance. This instance is assumed to be passed as the 'files' argument. Each state stored in the cache is a dictionary containing the following values: name The name of the uploaded file. size The size of the uploaded file. content_type The content type of the uploaded file. content_length The content length of the uploaded file. charset The charset of the uploaded file. content The content of the uploaded file. """

        files_states = {}

        for name, upload in files.items():
            # Generates the state of the file
            state = {
                'name': upload.name,
                'size': upload.size,
                'content_type': upload.content_type,
                'charset': upload.charset,
                'content': upload.file.read(),
            }
            files_states[name] = state

            # Go to the first byte in the file for future use
            upload.file.seek(0)
        self.backend.set(key, files_states)